php 去除二维数组中的包含某一个值的数组

今天写程序,遇到一个的问题。

我想把一个二维数组中的包含某一个值的数组去掉,并重新生成索引下标

例如:

$all_zone=array(
        array("id"=>"R001","name"=>"东城区"),
        array("id"=>"R002","name"=>"西城区"),
        array("id"=>"R003","name"=>"朝阳区"),
        array("id"=>"R004","name"=>"海淀区"),
        array("id"=>"R005","name"=>"昌平区"),
        array("id"=>"R006","name"=>"丰台区"),
        array("id"=>"R007","name"=>"通州区"),
        array("id"=>"","name"=>""),
        array("id"=>"R008","name"=>"大兴区"),
        );

这样一个数组,我想去掉包含海淀区的数组和空元素数组
可以这样写:

<?php
$all_zone=array(
        array("id"=>"R001","name"=>"东城区"),
        array("id"=>"R002","name"=>"西城区"),
        array("id"=>"R003","name"=>"朝阳区"),
        array("id"=>"R004","name"=>"海淀区"),
        array("id"=>"R005","name"=>"昌平区"),
        array("id"=>"R006","name"=>"丰台区"),
        array("id"=>"R007","name"=>"通州区"),
        array("id"=>"","name"=>""),
        array("id"=>"R008","name"=>"大兴区"),
        );
//自定义函数,去除包含某一个值得数组
function delValue($arr)
{
    foreach ($arr as $key=>$value){
        if($value=="R004"||$value==""){
            return false;
        }
        return true;
    }
}
$reArr=array_filter($all_zone,"delValue");
sort($reArr);//重新生成索引下标
print_r($reArr);
?>

其中:array_filter($all_zone,"delValue");

  array_filter(array,function)

  用回调函数过滤数组中的元素,如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组

打印结果:

array
  0 => 
    array
      'id' => string 'R001' (length=4)
      'name' => string '东城区' (length=6)
  1 => 
    array
      'id' => string 'R002' (length=4)
      'name' => string '西城区' (length=6)
  2 => 
    array
      'id' => string 'R003' (length=4)
      'name' => string '朝阳区' (length=6)
  3 => 
    array
      'id' => string 'R005' (length=4)
      'name' => string '昌平区' (length=6)
  4 => 
    array
      'id' => string 'R006' (length=4)
      'name' => string '丰台区' (length=6)
  5 => 
    array
      'id' => string 'R007' (length=4)
      'name' => string '通州区' (length=6)
  6 => 
    array
      'id' => string 'R008' (length=4)
      'name' => string '大兴区' (length=6)

这样就可以继续对这个新数组操作了。

 

 

posted @ 2013-01-10 17:17  KoMiles  阅读(16877)  评论(0编辑  收藏  举报