Таким образом, вот мой код:
<?php
$arr = array(array(2 => 5),
array(3 => 4),
array(7 => 10));
foreach ($arr as $v) {
$k = key($v);
if ($k > 5) {
// unset this element from $arr array
}
}
print_r($arr);
// now I would like to get the array without array(7 => 10) member
Как Вы видите, я запускаю с массива единственного ключа => массивы значения, я циклично выполняюсь через этот массив и получаю ключ элемента тока (который является единственным массивом объекта).
Я должен сбросить элементы массива с ключом выше, чем 5, как я мог сделать это? Я, возможно, также должен был бы удалить элементы со значением меньше чем 50 или любое другое условие. В основном я должен смочь получить ключ объекта современного массива, который является самостоятельно массивом с единственным объектом.
foreach($arr as $k => $v) {
if(key($v) > 5) {
unset($arr[$k]);
}
}
На самом деле небезопасно добавлять или удалять из коллекции во время итерации по ней. Как насчет того, чтобы добавить элементы, которые вы хотите, во второй массив, а затем сбросить исходный?
Используйте key ()
, чтобы получить первый ключ из подмассива.
foreach($arr as $k => $v) {
if(key($v) > 5) {
unset($arr[$k]);
}
}
Это безопасно в PHP для удаления элементов из массива во время итерации по нему с использованием цикла foreach:
foreach ($arr as $key => $value) {
if (key($value) > 5) {
unset($arr[$key]);
}
}