Intereting Posts
PHP shell_exec () и sudo: должен быть установленным root Какой уникальный идентификатор используется для блогов и комментариев? Понимание HttpUrlConnection / Как добавить пары nameValue в HttpUrlConnection Разбирайте HTML и получите многомерный массив с датой с использованием регулярного выражения (скребущие данные)? PHP написать файл с ввода в txt Как разбить таблицы таблицы MySQL пополам для отображения на каждой стороне страницы PHP включает () перед doctype, вызывая пробел PHP – Сделать многомерный ассоциативный массив из строки с разделителями PHP подключается к внешнему ip с портом «Правильное» разделение / разность между index.php и фронт-контроллером Как отображать значения данных круговой диаграммы для каждого фрагмента в chart.js Как выполнить необработанные запросы с помощью Laravel 5.1? Как разместить div в пользовательском месте на странице как рандомизировать поиск вопроса из базы данных? Очень конкретный запрос MySQL, который я хочу улучшить

Как удалить дубликаты ключей в массиве

У меня есть массив с именем $myarray

 id position status name 4 23 4 john 3 45 3 mike 4 23 0 john 7 25 2 sam 

и т.п.

Мне нужно отфильтровать массив по «id», и когда похожие записи обнаружены, мне нужно определить ключ «status», чтобы удалить номер, который равен 0 или меньше, чем «статус» в соответствующей строке. Есть ли способ сделать это быстро, как некоторые функции?

Это удаляет все вхождения status=0 . Если вы хотите сохранить эти строки, когда другого id соответствия нет, удалите $value['status'] > 0 &&

 $cleanarray = array(); foreach ($myarray as $value) { if ( $value['status'] > 0 && ( !array_key_exists($value['id'], $cleanarray) || $value['status'] > $cleanarray[$value['id']]['status'] ) ) $new_cleanarray[$value['id']] = $value; } 

Вы можете использовать array_multisort(..) для сортировки по id ASC, а затем по status DESC. Затем вы можете пройти через отсортированный массив и удалить строки, где ранее был указан id .

array_filter ()

Это может быть полезно