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)

這樣就可以繼續對這個新數組操作了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM