在 foreach 循环中取消设置数组元素

php
2022-08-30 18:04:17

这是我的代码:

<?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或任何其他条件的元素。基本上,我需要能够获得当前数组项的键,该键本身就是一个具有单个项的数组。


答案 1
foreach($arr as $k => $v) {
    if(key($v) > 5) {
        unset($arr[$k]);
    }
}

答案 2

在 PHP 中,从数组中删除元素是安全的,同时使用 foreach 循环迭代它:

foreach ($arr as $key => $value) {
    if (key($value) > 5) {
        unset($arr[$key]);
    }
}

推荐