Ответ 1
foreach($arr as $k => $v) {
if(key($v) > 5) {
unset($arr[$k]);
}
}
Итак, вот мой код:
<?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]);
}
}
Он безопасен в PHP для удаления элементов из массива, итерации по нему с помощью цикла foreach:
foreach ($arr as $key => $value) {
if (key($value) > 5) {
unset($arr[$key]);
}
}
Используйте key()
, чтобы получить первый ключ из поддиапазона.
foreach($arr as $k => $v) {
if(key($v) > 5) {
unset($arr[$k]);
}
}
Невозможно добавить или удалить из коллекции во время итерации через нее. Как насчет добавления элементов, которые вы хотите получить во второй массив, а затем сбросить оригинал?
Чтобы удалить элемент массива, мы использовали функцию unset() и php, как показано ниже:
foreach($array as $key=>$value)
{
if(key($value) > 5)
{
unset($array[$key]);
}
}