Фон
Я создаю систему ранжирования, которая извлекает кучу записей для сравнения их оценок, ставит их в ранг и удаляет эту запись для следующего сравнения. Однако у меня возникают проблемы с удалением записи, которую я пробовал 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
. На данный момент у нас закончились альтернативы, и мы все еще ищем в Интернете / документации. Однако я просто оставлю это здесь для некоторой помощи.
Мы также обновим это, если когда-нибудь у нас будет решение на несколько часов.