所以这是我的代码:
<?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
如您所见,我从一个单键数组开始=&gt;值数组,我循环遍历此数组并获取当前元素的键(这是一个单项数组)。
我需要使用高于5的键取消数组元素,我该怎么做?我可能还需要删除值小于50的元素或任何其他条件。基本上我需要能够获得当前数组项的键,它本身就是一个包含单个项的数组。
答案 0 :(得分:44)
foreach($arr as $k => $v) {
if(key($v) > 5) {
unset($arr[$k]);
}
}
答案 1 :(得分:14)
PHP 是安全的,可以在使用foreach循环迭代数组时从数组中删除元素:
foreach ($arr as $key => $value) {
if (key($value) > 5) {
unset($arr[$key]);
}
}
答案 2 :(得分:2)
使用key()
从子阵列中获取第一个键。
foreach($arr as $k => $v) {
if(key($v) > 5) {
unset($arr[$k]);
}
}
答案 3 :(得分:0)
在迭代过程中添加或删除集合并不是很安全。如何将你想要的元素添加到第二个数组,然后转储原始文件?
答案 4 :(得分:0)
要取消设置数组元素,我们使用unset()和php函数,如下所示:
foreach($array as $key=>$value)
{
if(key($value) > 5)
{
unset($array[$key]);
}
}