У меня есть многомерный массив PHP и вы хотите удалить любые элементы (на основе строк), которые не соответствуют значению.PHP - Удалить из многомерного массива по значению
Например:
$user_types = [
0 => ['ut_id' => 32, 'type' => 'admin'],
1 => ['ut_id' => 31, 'type' => 'user'],
2 => ['ut_id' => 801, 'type' => 'editor']
];
Скажем, я хочу только элемент, где 'type' == 'admin'
. Я хочу, чтобы выход был:
$user_types = [
0 => ['ut_id' => 32, 'type' => 'admin']
]
Мне также нужно убедиться, что массив последовательно вводится. Поэтому, если я хочу только type == 'editor'
, ключ массива должен быть равен 0 (не 2), например.
$user_types = [
0 => ['ut_id' => 801, 'type' => 'editor']
]
Я имел взгляд на PHP array delete by value (not key), но это не имеет дело с многомерными массивами.
Я также видел некоторые решения, которые используют цикл foreach
, но это кажется довольно неэффективным.
Пожалуйста, может кто-нибудь указать мне в сторону, на что посмотреть? Я не могу найти примеров, которые касаются этого, когда дело доходит до многомерных массивов. Я видел Delete element from multidimensional-array based on value, но это кажется неэффективным и было написано около 6 лет назад.
Я хотел бы посмотреть в многомерных массивов поисков и идти оттуда. Отмечу, что числовые индексированные массивы всегда начинаются с '0'. У вас не может быть одного элемента с ключом '2'. –
http://php.net/manual/en/function.array-filter.php в сочетании с 'array_values'. – jeroen
@StuartWagner Да, вы можете, нет такого ограничения на ключ массива в php. – jeroen