Array Walk PHP實現數組遍歷的函數,php中對關聯數組和索引數組都適用,對于數組內的每個元素都執行指定的函數操作,是一個非常有用的函數。
Array Walk PHP函數支持4個參數,其中前兩個參數分別是數組和回調函數。回調函數是在每個數組元素上應用的函數。如果回調函數返回false,那么遍歷就會終止,并且返回false。如果成功,則返回true值。
函數格式: array_walk($array, "myfunction");
我們先來看一個非常簡單的例子,假設我們有一個索引數組,儲存著一些學生的分數,我們要將每個學生的分數加上10分,并輸出結果。
$score = array(90,78,86,92,68,76,85,93,80,88); function add_ten(&$value, $key) { $value += 10; } array_walk($score, "add_ten"); print_r($score);
在上述代碼中,我們定義了一個數組$scores和一個空函數add_ten,使用array_walk函數,每個元素都會執行add_ten函數,并且將每個元素分數加上10分,最后輸出結果。
有時候我們不想直接修改元素數值,而是在元素數值上進行改動,這時可以使用&操作符,將元素變成一個引用,然后再進行操作。
下面我們來看一個比較復雜的例子,我們有一個關聯數組,記錄著每個省份的省會和人口數量,我們要將每個省的人口增加50萬,并且輸出結果。
$provinces = array( '廣東' =>'廣州', '江蘇' =>'南京', '浙江' =>'杭州', '湖北' =>'武漢' ); $population = array( '廣東' =>1000, '江蘇' =>800, '浙江' =>600, '湖北' =>500 ); function add_population(&$value, $key, $add_num) { $value += $add_num; } array_walk($population, "add_population", 50); foreach($population as $key =>$value) { echo $provinces[$key].":".$value."萬
"; }
在上述代碼中,我們定義了一個關聯數組$provinces,儲存著每個省份的省會,還定義了另一個關聯數組$population,儲存每個省份的人口數量。我們也定義了函數add_population,對于每個省份增加指定數量的人口。
然后我們使用array_walk函數,對每個元素進行add_population函數調用,為每個省增加50萬人口。最后我們再使用foreach遍歷輸出省份以及人口數量。
總結:Array Walk PHP可以非常方便的遍歷數組元素,在PHP中使用非常廣泛。需要注意的是回調函數需要自定義,而且需要考慮傳入參數的數量。