Как удалить строку из result_array () с помощью CodeIgniter - PullRequest
0 голосов
/ 18 сентября 2018

Фон

Я создаю систему ранжирования, которая извлекает кучу записей для сравнения их оценок, ставит их в ранг и удаляет эту запись для следующего сравнения. Однако у меня возникают проблемы с удалением записи, которую я пробовал unset(), но, похоже, она тоже не работает.

Вопрос

Это код, который я использую. Обратите внимание, что это всего лишь псевдокод того, что мы делаем, а не реальный код, чтобы избежать путаницы в вопросе. Посмотрите на этот код:

// Retrive all the student records with grades.
$students = $this->grades->RetrieveRecords();

// Occupy slot.
$iterator=0;
$highest_index =0 ;
for($i=0;$i<5;$i++){

    // Search student for rank $i.

    foreach($students as $student)
    {
        // Some comparisons

        // consider we found the highest yet.
        if($highest<$student['grade']){

            // Store which index it is, because it will be deleted
            // on the next cycle if this $student['grade'] is indeed the highest on this cycle.
            $highest_index = $iterator;
        }
        $iterator+=1;
    }   

    // After getting the highest for rank $i. Delete that current record
    // from $students so on next cycle, it will be removed from the comparison.

    $unset($students[$highest_index]); // Does not work, any alternative? - Greg

    // Reset the foreach iterator for next comparison cycle.
    $iterator=0;

$unset($students[$highest_index]); - это то, что нам нужно для выполнения работы, но это не так. Нам просто нужно удалить конкретную запись из result_array(), которая является $students. На данный момент у нас закончились альтернативы, и мы все еще ищем в Интернете / документации. Однако я просто оставлю это здесь для некоторой помощи.

Мы также обновим это, если когда-нибудь у нас будет решение на несколько часов.

1 Ответ

0 голосов
/ 18 сентября 2018

вы можете использовать array_filter :

$students = array_filter($students, function($student) use($highest)
{
    return $student['grade'] < $highest;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...