更多精彩內(nèi)容,歡迎關注:

視頻號
視頻號

抖音
抖音

快手
快手

微博
微博

PHP遍歷數(shù)組的6種方式總結(jié)

導讀數(shù)組的遍歷是PHP一個常見的編程任務,而數(shù)組又分為一維數(shù)組、二維數(shù)組和多維數(shù)組,下面這篇文章主要給大家介紹了關于PHP遍歷數(shù)組的6種方式,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。

目錄

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種方式的文章就介紹到這了,希望大家以后多多支持好二三四!

為你推薦
資訊專欄
熱門視頻
相關推薦
JS截取字符串的三種方法詳解 Python常用的正則表達式處理函數(shù)詳解 一文秒懂python正則表達式常用函數(shù) python正則表達式語法學習筆記 Python 垃圾回收機制詳解 Python實現(xiàn)城市公交網(wǎng)絡分析與可視化 Python數(shù)據(jù)分析處理(三)--運動員信息的分組與聚合 基于Python實現(xiàn)PDF區(qū)域文本提取工具 詳解python的循環(huán) python實現(xiàn)新年倒計時實例代碼 Python實現(xiàn)消消樂小游戲 學習python的while循環(huán)嵌套 提升Python運行速度的5個小技巧 Python按鍵或值對字典進行排序 圖像檢索之基于vlfeat實現(xiàn)SIFT特征 python繪圖中的四個繪圖技巧 js中toString方法3個作用 信息系統(tǒng)項目管理師報考條件 信息系統(tǒng)項目管理師報考時間 信息系統(tǒng)項目管理師報名時間 php兩種基本的輸出方及實例詳解 php生成唯一uid的解決方法詳解 PHP7中對十六進制字符串處理的問題詳解 PHP對接抖音開發(fā)平臺接口的詳細教程 php7安裝mysqli實例講解 php去掉一維數(shù)組的鍵值的實例方法 PHP中empty()和isset()的區(qū)別介紹 PHP實現(xiàn)JWT的Token登錄認證 php判斷時間戳是否為今天實例講解 PHP7 preg_replace出錯及解決辦法 五年班的學習計劃怎么寫 五年級的學習計劃 初中新學期學習計劃怎么寫 關于英語的學習計劃怎么寫 怎么寫暑假學習計劃書 4年級數(shù)學學習計劃怎么寫 后半學期的學習計劃怎么寫 上學期學習計劃怎么寫 五年級的學習計劃書怎么寫 小學一年級學習計劃怎么寫 暑假學習計劃表怎么寫
Top