目錄
1、foreach
2、array_map
3、array_walk
4、for
5、each
6、reset
在PHP的日常操作中,數(shù)組是最常出現(xiàn)的結(jié)構(gòu),而我們幾乎每天都在處理數(shù)組相關的內(nèi)容。那么問題來了,你一般怎么遍歷并處理數(shù)組。
1、foreach很熟悉吧,是不是你的最愛?
$arr?=?['a',?'b',?'c']; foreach?($arr?as?$key?=>?$value)?{ ????$arr[$key]?=?$value?.?'_i'; } print_r($arr);?//?['a_i',?'b_i',?'c_i'];2、array_map
使用匿名函數(shù)的方式,處理數(shù)組里的每個元素。遍歷完成后返回一個新的數(shù)組
$arr?=?['a',?'b',?'c']; $arr?=?array_map(function?($item)?{ ????return?$item?.?'_i'; },?$arr); print_r($arr);?//?['a_i',?'b_i',?'c_i'];
你可以同時處理多個數(shù)組
$arr_1?=?['a',?'b',?'c']; $arr_2?=?['你',?'好',?'嗎',?'原',?'罪']; //?$arr_n?=?[...]; $arr?=?array_map(function?($item_1,?$item_2)?{ ????return?$item_1?.?'_'?.?$item_2?.?'_i'; },?$arr_1,?$arr_2); print_r($arr);?//?['a_你_i',?'b_好_i',?'c_嗎_i',?'_原_i',?'_罪_i']
是的,遍歷的次數(shù)以最長的數(shù)組為準。
遍歷3次之后,$arr_1 其實是完成了的,所以之后 $item_1 的值都是null3、array_walk
以引用傳遞的形式遍歷你的數(shù)組,沒有返回值,而且只能處理一個數(shù)組。
$arr?=?['a',?'b',?'c']; array_walk($arr,?function?(&$item)?{ ????$item?=?$item?.?'_i'; }); print_r($arr);?//?['a_i',?'b_i',?'c_i'];
注意到 &$item 了嗎,是的,多了個&,代表著你的形參是以引用傳遞接收數(shù)據(jù)的。你要做的就是想辦法改變這個參數(shù)。
假如你處理的是二維數(shù)組,處理方式也是萬變不離其宗的。
$arr?=?[ ????['name'?=>?'a'], ????['name'?=>?'b'], ????['name'?=>?'c'] ]; array_walk($arr,?function?(&$item)?{ ????$item['name']?=?$item['name']?.?'_i'; }); print_r($arr);?//?[['name'?=>?'a_i'],?['name'?=>?'b_i'],?['name'?=>?'c_i']];4、for
這應該是超級通用的語法了
$arr?=?['a',?'b',?'c']; for?($i?=?0;?$i?不推薦使用。它的效率比不上foreach。而且寫法上比foreach略繁瑣。
5、each哈哈,這個函數(shù)在PHP7.2已經(jīng)被廢棄了@deprecated,而且感覺特別古老的書寫方式。這種寫法的執(zhí)行效率也不行,新手應該直接放棄。
$arr?=?['a',?'b',?'c']; while?(list($key,?$value)?=?each($arr))?{ ????$arr[$key]?=?$value?.?'_i'; } print_r($arr);?//?['a_i',?'b_i',?'c_i'];6、reset準確的講并不止reset一個函數(shù),需要組合多個內(nèi)置函數(shù),平常寫代碼基本是用不上的
$arr?=?['a',?'b',?'c']; //?reset()?指針切換到頭部,其實默認就是指向開頭,可以忽略這句 reset($arr); //?current()?獲取當前指針的元素值 while?($value?=?current($arr))?{ ????//?key()?獲取當前指針的元素下標 ????$arr[key($arr)]?=?$value?.?'_i'; ????//?next()?指針移到下一個 ????next($arr); } print_r($arr);?//?['a_i',?'b_i',?'c_i'];總結(jié)到此這篇關于PHP遍歷數(shù)組的6種方式的文章就介紹到這了,希望大家以后多多支持好二三四!