程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中array_map,array_filter,array_walk區別

php中array_map,array_filter,array_walk區別

編輯:關於PHP編程

在php中array_map,array_filter,array_walk三個函數都是對數據操作的,下面我來介紹這三個函數的用法與區別。  


array_walk:

array_walk()返回布爾值,如果回調函數需要直接作用於數組中的值,則給回調函數的第一個參數指定為引用。這樣任何對這些單元的改變也將會改變原始數組本身。此函數可以同時獲取到數組的key和value。

 

array_map:

array_map() 返回一個數組,該數組包含了 arr1 中的所有單元經過 callback 作用過之後的單元。callback 接受的參數數目應該和傳遞給 array_map() 函數的數組數目一致。

簡單點說就是回調函數對數組中每個值都會產生最終影響,並在調用array_map的返回值中體現。

此函數可以同時對多個數組進行操作。並最終合並為一個數組(每個數組根據下標平行對其到同一個二維數組中)。

 


array_filter:

此函數是專門用於過去數組中的元素,簡單點說就是對數組中的經過回調函數判斷的value進行過濾,並通過array_filter()函數返回處理後的數組。

 


因此分析到此我們可以是喲on個array_walk和array_map來做數組的預處理,最常見的是對每個數組值的trim操作。以下是筆者的示例代碼:

 

 代碼如下 復制代碼

$tmp = array(' AAAA BBBB CCCC ', 'aaaa bbbb c ', ' dddddd eeeeee');

function array_walk_func(&$v, $k) {
 $v = trim($v);
}
array_walk($tmp, 'array_walk_func');
var_dump($tmp);

function array_map_func($v) {
 return trim($v);
}
$ret = array_map('array_map_func', $tmp);
var_dump($ret);


輸出結果:

array(3) {
  [0] =>
  string(14) "AAAA BBBB CCCC"
  [1] =>
  string(11) "aaaa bbbb c"
  [2] =>
  string(13) "dddddd eeeeee"
}
array(3) {
  [0] =>
  string(14) "AAAA BBBB CCCC"
  [1] =>
  string(11) "aaaa bbbb c"
  [2] =>
  string(13) "dddddd eeeeee"
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved