array_map() ,array_filter()的區別

這兩個函數均可以快速查找到指定元素中的值,比本身寫的循環和判斷來得更加高效之後查找數組的值就是用這兩個函數吧,固然若是判讀的數組元素只有一兩個而已就本身寫都方便php

header("Content-Type:text/html;charset=utf-8");
 $a=array(
        array('name'=>'hah','sex'=>'女','age'=>19),
        array('name'=>'嘎嘎','sex'=>'男','age'=>20),
        array('name'=>'嘿嘿','sex'=>'女','age'=>19),
        array('name'=>'呵呵','sex'=>'女','age'=>19),
        array('name'=>'keke','sex'=>'男','age'=>19)
);
function filter($arr){
    return $arr['sex'];
}
print_r(array_map('filter',$a));   //這裏你將會返回所有都是性別的信息
Array
(
    [0] => 女
    [1] => 男
    [2] => 女
    [3] => 女
    [4] => 男
)
/*--------------------------------------------------------------*/
print_r(array_filter($a,'filter'));  //這裏會輸出原來的數組
 array(
        array('name'=>'hah','sex'=>'女','age'=>19),
        array('name'=>'嘎嘎','sex'=>'男','age'=>20),
        array('name'=>'嘿嘿','sex'=>'女','age'=>19),
        array('name'=>'呵呵','sex'=>'女','age'=>19),
        array('name'=>'keke','sex'=>'男','age'=>19)
);
/*--------------------------------------------------------------*/
function filter($arr){
    return $arr['sex']=='男';
}
print_r(array_map('filter',$a)); //這裏將會輸出的性別與上面條件比較的布爾值
Array
(
    [0] => 1
    [1] =>
    [2] => 1
    [3] => 1
    [4] =>
)
/*--------------------------------------------------------------*/
print_r(array_filter($a,'filter'));//這裏輸出以下
Array
(
    [1] => Array
        (
            [name] => 嘎嘎
            [sex] => 男
            [age] => 20
        )
    [4] => Array
        (
            [name] => keke
            [sex] => 男
            [age] => 19
        )
)
相關文章
相關標籤/搜索