PHP 常用到的 Array 函數(shù)

PHP 常用到的 Array 函數(shù)

array_column 返回輸入數(shù)組中某個單一列的值

$arr = array(
    array(
        'id' => 111,
        'first_name' => 'zhang',
        'last_name' => 'san'
    ),
    array(
        'id' => 112,
        'first_name' => 'li',
        'last_name' => 'si'
    ),
    array(
        'id' => 113,
        'first_name' => 'wang',
        'last_name' => 'wu'
    )
);

$last_names = array_column($arr, 'last_name', 'id');
print_r($last_names);

輸出:

Array
(
    [111] => san
    [112] => si
    [113] => wu
)

array_filter 用回調函數(shù)過濾數(shù)組中的元素

function test_odd($var){
    return(gettype($var) === 'integer');
}

$arr = array('a','b',2,3,4);

print_r(array_filter($arr,"test_odd"));

輸出:

Array
(
    [2] => 2
    [3] => 3
    [4] => 4
)

array_map 將用戶自定義函數(shù)作用到給定數(shù)組的每個值上

此函數(shù)與array_walk_recursive類似,需要寫遞歸

function myFun($val){
    if(is_array($val)){
        return array_map('myFun',$val);
    }
    return($val*$val);
}

$arr = array(1,2,3,4,5,6 => [2,3]);
print_r(array_map('myFun',$arr));

輸出:

Array
(
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
    [6] => Array
        (
            [0] => 4
            [1] => 9
        )

)

------------------------------

function myFun($val1,$val2){
    $result = 'different';
    if($val1 === $val2){
        $result = 'same';
    }
    return $result;
}

$arr1 = array('Mixj','Binz','Tiec');
$arr2 = array('Mixj','BinZ','Tiec');

print_r(array_map('myFun',$arr1,$arr2));

輸出:

Array
(
    [0] => same
    [1] => different
    [2] => same
)

array_walk_recursive 對數(shù)組中的每個成員遞歸地應用用戶函數(shù)

此函數(shù)與 array_map 類似,省去了寫遞歸

function myfunction($value,$key)
{
echo "The key $key has the value $value<br>";
}
$a1=array("a"=>"red","b"=>"green");
$a2=array($a1,"1"=>"blue","2"=>"yellow");
array_walk_recursive($a2,"myfunction");

輸出:

The key a has the value red
The key b has the value green
The key 1 has the value blue
The key 2 has the value yellow

extract / compact

extract 從數(shù)組中將變量導入到當前的符號表
compact 創(chuàng)建一個包含變量名和它們的值的數(shù)組

$arr = array(
    "a" => "Cat",
    "b" => "Dog",
    "c" => "Horse"
);
extract($arr);
echo "\$a = $a; \$b = $b; \$c = $c";

輸出:

$a = Cat; $b = Dog; $c = Horse

$firstName = "Mi";
$lastName = "xj";
$age = 24;
$result = compact("firstName","lastName","age");
print_r($result);

輸出:

Array
(
    [firstName] => Mi
    [lastName] => xj
    [age] => 24
)

uasort 使用自定義的比較函數(shù)對鍵值進行排序 (可以對二維數(shù)組排序)

$arr = [
    [
        'id' => 3,
        'age' => 33
    ],
    [
        'id' => 2,
        'age' => 44
    ],
    [
        'id' => 1,
        'age' =22
    ]
];

uasort($arr,function($a, $b){
    $field = 'age';
    if($a[$field] == $b[$field]){
        return 0;
    }
    return $a[$field] < $b[$field] ? -1 : 1;
});

print_r($arr);

輸出:

Array
(
    [2] => Array
        (
            [id] => 1
            [age] => 22
        )

    [0] => Array
        (
            [id] => 3
            [age] => 33
        )

    [1] => Array
        (
            [id] => 2
            [age] => 44
        )
)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 總結了一些開發(fā)中常用的函數(shù): usleep() //函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() //函數(shù)從二進制...
    ADL2022閱讀 546評論 0 3
  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解...
    上街買菜丶迷倒老太閱讀 1,504評論 0 20
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解包。 uni...
    思夢PHP閱讀 2,135評論 1 24
  • # 數(shù)組部分 # 1.## array_chunk($arr, $size [, $preserve_key = ...
    clothTiger閱讀 1,316評論 0 1
  • 我想,這一次分手就是最后一次分手了吧,因為以后再也不會復合了。也許,真正的分手就是我已經(jīng)記不起我們是何年何...
    你與喵閱讀 251評論 0 1

友情鏈接更多精彩內容