如何删除二维数组(PHP)中的值?

时间:2011-03-30 10:58:55

标签: php

我有一个看起来像

的数组
        $cclArray[0]['url']='test.html';
        $cclArray[0]['entity_id']=9;
        $cclArray[1]['url']='test1.html';
        $cclArray[1]['entity_id']=10;
        $cclArray[2]['url']='test2.html';
        $cclArray[2]['entity_id']=11;

如果我想删除一个特定的数组,例如,如果我想用'url'='test1.html'删除数组元素..我该怎么办?

非常感谢你的帮助。

6 个答案:

答案 0 :(得分:2)

foreach ( $cclArray as $k => $array ) {
    if ( $array['url'] == 'test1.html' ) {
        unset($cclArray[$k]);
    }
}

答案 1 :(得分:2)

如果你使用PHP> 5.3,你可以这样做:

$cclArray = array_filter($cclArray, function ($var) {
    return $var['url'] != 'test1.html';
});

答案 2 :(得分:1)

如果以这种方式制作阵列

    $cclArray['test.html'] = 9;
    $cclArray['test1.html'] = 10;
    $cclArray['test2.html'] = 11;

可以只用

删除
$url = 'test.html';
unset($cclArray[$url]);

答案 3 :(得分:0)

foreach($cclArray as $key=>$val){
  if($val['url'] == 'test1.html'){
   unset($cclArray[$key]);
  }
}

我认为就是这样。

答案 4 :(得分:0)

for ($i=0;$i<count($cclArray);$i++)
  if($cclArray[$i]['url']=='test.html') unset($cclArray[$i]['url'])

答案 5 :(得分:0)

for($i=0; $i<count($cclArray); $i++){
    if('test1.html' === $cclArray[$i]['url']){
        array_splice($cclArray, $i, 1);
    }
}

这是更好的但请记住,unset()不会删除它只是将其设置为null的实际元素。如果你希望它完全消失,那么在unset()之后你也应该这样做:$ cclArray = array_filter($ cclArray);

或者你可以这样做以完成删除数组元素而不是仅仅取消它

for($i=0; $i<count($cclArray); $i++){
if('test1.html' === $cclArray[$i]['url']){
array_splice($cclArray, $i, 1);
}

}