#php
Доброго времени суток. Есть массив: Array ( [34612] => Array ( [ID] => 34612 [NAME] => Бело-зеленый [SORT] => 500 ) [34615] => Array ( [ID] => 34615 [NAME] => Бело-красно-серый [SORT] => 500 ) [155] => Array ( [ID] => 155 [NAME] => Бело-красно-синий [SORT] => 500 ) [161] => Array ( [ID] => 161 [NAME] => Бело-красно-черный [SORT] => 500 ) ) И есть ключи 155 161 они означают, что вот эти элементы массива должны остаться, все остальные удалить нужно. Как это правильно организовать?
Ответы
Ответ 1
Пусть $array - ваш массив. Для данного случая самое простое: unset($array[34612]); unset($array[34615]); Но лучше универсальный вариант, когда вы легко сможете поменять разрешенные ключи, а неразрешенные ключи заранее не известны (их, например, слишком много): $allowed = [155, 161]; //разрешенные ключи $filtered = array_filter( $array, function ($key) use ($allowed) { return in_array($key, $allowed); }, ARRAY_FILTER_USE_KEY ); //теперь в массиве $filtered только элементы с разрешенными ключами Но флаг ARRAY_FILTER_USE_KEY был добавлен в PHP версии 5.6. Если вы применяете более раннюю версию, то можете использовать менее гибкий, но даже более удобный вариант: $filtered = array_intersect_key($array, array_flip($allowed));Ответ 2
//$array - ваш массив $result = array(); // новый отфильтрованный массив foreach ($array as $key => $value) { if($key !== 161 && $key !== 155) $result[] = $value; }Ответ 3
в цикле проходим все элементы массива, если ключ этих элементов не 155 и не 161 - удаляем foreach ($arr as $key => $value) { if($key != '155' AND $key != '161') { unset($arr[$key]); } }
Комментариев нет:
Отправить комментарий