Array Map - 就像它的名字一樣,它是PHP中一個非常強大的函數,它可以讓你把數組里的每個元素都應用一個函數,然后返回一個新的數組。
在PHP中,數組是一種非常常見的數據類型,無論是HTTP表單還是從數據庫中取出的數據,它們都以數組的形式呈現。這時,我們很可能需要對這些數組中的每個元素進行一些處理,比如打印、計算或者多維數組操作等等。這時,就需要使用到PHP中的Array Map。
$array = array(1, 2, 3, 4, 5); $newArray = array_map(function($value) { return $value * 2; }, $array); print_r($newArray);
上面的代碼會將原數組中的每個元素乘以2,然后返回一個新的元素,打印輸出結果如下:
Array ( [0] =>2 [1] =>4 [2] =>6 [3] =>8 [4] =>10 )
可以看到,新的數組中的每個元素都是原數組中的每個元素乘以2的結果。
當然,這只是Array Map的一個基本例子,在實際應用中還有很多變化和用法。
首先,Array Map是支持多維數組操作的。考慮以下代碼:
$array = array( array('id' =>1, 'name' =>'Tom', 'age' =>30), array('id' =>2, 'name' =>'Jerry', 'age' =>35), array('id' =>3, 'name' =>'Peter', 'age' =>40) ); $newArray = array_map(function($value) { return $value['name']; }, $array); print_r($newArray);
上面的代碼會將二維數組中的每個元素的'name'這個鍵所對應的值返回,然后拼成一個新的數組。打印輸出結果如下:
Array ( [0] =>Tom [1] =>Jerry [2] =>Peter )
可以看到,結果是一個新的一維數組,其中每個元素都是原數組中每個元素的'name'鍵所對應的值。
除了使用匿名函數以外,我們還可以使用回調函數來操作數組元素。比如:
$array = array('apple', 'banana', 'pear', 'orange'); $newArray = array_map('strtoupper', $array); print_r($newArray);
上面的代碼會將數組中的每個元素都轉化成大寫字母,然后返回一個新的數組。打印輸出結果如下:
Array ( [0] =>APPLE [1] =>BANANA [2] =>PEAR [3] =>ORANGE )
可以看到,新的數組中的每個元素都是原數組中的每個元素轉換成大寫字母的結果。
最后,我們需要注意一個問題,當回調函數返回的結果為NULL時,新數組中會保持前一個函數的返回值,而不是忽略這個元素。如果你想忽略這個元素,可以在匿名函數中使用條件判斷的方法進行處理。
Array Map的應用非常廣泛,無論是對單個數組還是對多維數組進行操作,都可以輕松處理。如果你還沒有使用過,那我強烈建議你嘗試一下。