array_map常用技巧


array_map() 函數將用戶自定義函數作用到數組中的每個值上,並返回用戶自定義函數作用后的帶有新值的數組。

簡單來說 “array_map” 會對數組中的每一項進行處理,並返回處理后的數據。

定義:

array_map的參數為array_map(處理函數,數組,數組...)

處理函數可以是匿名函數,也可以是具名函數

數組可以是多個數組或者是單個數組

 

用法:

 應用場景1:對數組的每一項進行乘法操作

$arr = array(1,2,3,4,5);
$result = array_map(function ( $value ){
  return $value * 10;
},$arr);
print_r($result);   //Array ( [0] => 10 [1] => 20 [2] => 30 [3] => 40 [4] => 50 )

  

 應用場景2:二維數組轉換成一維數組

$arr = array(
    array(
      array('id'=>1,'name'=>'a'),
      array('id'=>2,'name'=>'b')
    ),
    array(
      array('id'=>3,'name'=>'c'),
      array('id'=>4,'name'=>'d'),
      array('id'=>5,'name'=>'e')
    )
  );

  $result = array();
  array_map(function ($value) use (&$result){
    $result = array_merge($result,array_values($value));
  },$arr);
  /*
  講一下function () use (){}  是php5.3后新增的閉包,use()的括號里面可以對外部的變量進行傳參,共匿名函數使用


  Array
  (
    [0] => Array
        (
            [id] => 1
            [name] => a
        )

    [1] => Array
        (
            [id] => 2
            [name] => b
        )

    [2] => Array
        (
            [id] => 3
            [name] => c
        )

    [3] => Array
        (
            [id] => 4
            [name] => d
        )

    [4] => Array
        (
            [id] => 5
            [name] => e
        )

  )
  */

  

 


免責聲明!

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



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