удалить из массива

У меня есть массив объектов:

$obj = array(); // add the new items $row = new stdClass(); $row->first = $first; $row->last = $last; $row->phone = $phone; $obj[] = $row; 

Теперь, если у меня есть только значение $ last, существует ли способ удалить весь объект $ row без указания каждого ключа / значения? (Если это помогает понять, если это был оператор mysql, это было бы что-то вроде «DELETE * FROM $ obj WHERE $ row-> last = 'Thomas'")

спасибо

Вам нужно знать ключ. Однако, если вы перебираете массив, вы можете его найти.

 /* Your original code: */ $obj = array(); // add the new items $row = new stdClass(); $row->first = $first; $row->last = $last; $row->phone = $phone; $obj[] = $row; /* My addition: */ $theOneToDelete = $last; foreach ($obj as $key => $row) { if ($row->last == $theOneToDelete) { unset($obj[$key]); break; } } с /* Your original code: */ $obj = array(); // add the new items $row = new stdClass(); $row->first = $first; $row->last = $last; $row->phone = $phone; $obj[] = $row; /* My addition: */ $theOneToDelete = $last; foreach ($obj as $key => $row) { if ($row->last == $theOneToDelete) { unset($obj[$key]); break; } } 

С некоторыми array_* может существовать подход, связанный с array_* , но это array_* это.

Не unset($row); что ты хочешь? Но нет необходимости делать это, если вы просто делаете это для сохранения памяти …

 foreach ($obj as $key => $value) { if($obj[$key]->last == $last){ unset($obj[$key]); } } с foreach ($obj as $key => $value) { if($obj[$key]->last == $last){ unset($obj[$key]); } } 

К сожалению, я забыл отформатировать свой ответ как код. Я здесь новенький! = Р