从多维数组中搜索和删除

时间:2010-09-25 19:27:16

标签: php arrays

如果我的值ID等于1并搜索数组,我想从数组本身中删除,如果找到,则ID为1。

Array (
[0] => Array
    (
        [id] => 1
    )
[1] => Array
    (
        [id] => 4
    )
[2] => Array
    (
        [id] => 5
    )
[3] => Array
    (
        [id] => 7
    )
)

新数组

Array (
[0] => Array
    (
        [id] => 4
    )
[1] => Array
    (
        [id] => 5
    )
[2] => Array
    (
        [id] => 7
    )
)

我正在使用search_array,我假设因为它是多维的,所以没有找到它。有没有办法搜索上面的数组?

3 个答案:

答案 0 :(得分:7)

如果您只检查一个值,为什么不使用foreach循环?

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

答案 1 :(得分:3)

另一种方法是(假设您过滤掉整数1的ID):

$filtered = array_filter($arr, function ($val) { return $val['id'] !== 1; });

注意上面使用了带有匿名函数的狡猾命名的array_filter函数作为回调(它进行过滤;如果首选,你可以使用'普通'命名函数,或者如果你不接受PHP 5.3尚未)。

答案 2 :(得分:2)

$arr = array(/* your array */);
$remove = 1;

foreach($arr as $key=>$val){
   if($val['id'] == $remove){
      unset($arr[$key]);
   }
}
相关问题