PHP函數array_map函數

來源:互聯網
上載者:User
在這介紹一個PHP語言裡比較常用的數組操作函數,array_map函數,當我第一次接觸到這個函數時,對這個函數的強大功能所震懾,也越發感覺PHP語言的好玩之處。

說明

瞭解PHP函數的最好的去處就是PHP手冊,PHP手冊上的關於此函數的說明:

array array_map ( callable $callback , array $arr1 [, array $... ] )

array_map() 返回一個數組,該數組包含了 arr1 中的所有單元經過 callback 作用過之後的單元。callback 接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。就是說將$arr1數組的每個單元的值,通過回呼函數作用後儲存進一個新的數組作為新數組的對應單元的值而還有個厲害的地方是這個函數可以傳入多個數組,也就是在你定義的回呼函數中可以同時對多個數組的每個單元的值同時操作

操作範例

例子1:<?php    function cube($n){    return $n*$n;}$num = array(1,2,3,4,5);var_dump(array_map("cube", $num));      輸出:array(5) { [0]=> int(1) [1]=> int(4) [2]=> int(9) [3]=> int(16) [4]=> int(25) }
例子2(匿名函數也有效):<?php    $func = function($n,$m){    return ("這個數組的第 $n 個位置的值是 $m 
");};$a = array(1, 2, 3, 4, 5);$b = ['整型:1','整型:2','整型:3','整型:4','整型:5'];var_dump(array_map($func,$a,$b));輸出:array(5) {[0]=> string(55) "這個數組的第 1 個位置的值是 整型:1 "[1]=> string(55) "這個數組的第 2 個位置的值是 整型:2 "[2]=> string(55) "這個數組的第 3 個位置的值是 整型:3 "[3]=> string(55) "這個數組的第 4 個位置的值是 整型:4 "[4]=> string(55) "這個數組的第 5 個位置的值是 整型:5 "}

注意第二個例子中的匿名函數裡的語句必須使用雙引號,因為其中包含$n,$m兩個傳參,而在PHP中,雙引號內的字元會被分析器進行一遍解析,這樣才能將其中的參數代表的值解析出來。

最後是從事資料開發時經常會碰到的問題,本人是在laravel架構下進行PHP開發,在利用其中的資料模型取資料時會出現一種情況,取出的資料是返回的物件類型(ObjClass),此時是無法直接利用鍵取出某一資料的,此時一般採用的方法是利用json_decode()方法,將其參數設為true時可返回數群組類型的資料,但是此時返回的數組則是一個兩層次的數組,就像

$arr = array(    0 => array(        'id' => 11111    ),    1 => array(        'id' => 22222    ),    2 => array(        'id' => 33333    ));

此時可以用foreach取出id,但是也可以用array_map()方法

$id_arr = array_map(function($v) {    return $v['id'];}, $arr);輸出:array(3) {[0]=> int(111) [1]=> int(222) [2]=> int(333) }

不過foreach遍曆數組也很快,這兩種方法就是看個人意願了

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.