php遍歷數組有幾種方式?

for

對於純數字索引的數組可以通過for循環來遍歷數組,但是要注意的是數字索引必須是連續的,否則會獲取不到數組中的部分數據。遍歷不受數組內部指針影響。

<?php
$ar1=range('a','e');
$len=count($ar1);
for($i=0;$i<$len;$i++){
    echo $ar1[$i]."\n";
}
$ar1=array(0=>"a","2"=>"c","d");
$len=count($ar1);
for($i=0;$i<$len;$i++){
    echo $ar1[$i]."\n";
}
?>

**

foreach

**
foreach可以遍歷任何類型的數組,可以只遍歷值,也可以同時遍歷鍵和值。遍歷不受數組內部指針影響。

<?php
$ar1=range('a','e');
$ar2=array_combine($ar1,range(1,5));
$ar1=array(0=>"a","2"=>"c","d");
foreach($ar1 as $k=>$v){
    echo "$k=>$v\n";
}
foreach($ar2 as $k =>$v){
    echo "$k=>$v\n";
}
foreach ($ar2 as $v) {
    echo "$v\n";
}
?>

while/do…while、each

each函數以數組形式返回數組中當前的鍵/值對並將數組指針向前移動一步,each函數在PHP7.2後被移除。如果想要再次從頭遍歷需要重置數組內部指針。

<?php
$ar1=range('a','e');
$ar2=array_combine($ar1,range(1,5));
while($kv=each($ar2)){
    echo $kv[0]."=>".$kv[1].",".$kv['key']."=>".$kv['value']."\n";
}
?>

**

while/do…while、list、each

**
通過list函數接受each返回的數組鍵/值對。如果想要再次從頭遍歷需要重置數組內部指針。

<?php
$ar1=range('a','e');
$ar2=array_combine($ar1,range(1,5));
while(list($k,$v)=each($ar2)){
    echo "$k=>$v\n";  
}
?>

**

while/do…while、key、next/prev、current

**
通過數組的next、prev等可操作數組內部指針的函數進行遍歷。

<?php
$ar3=array("a"=>"a",1=>"b",false=>"c",3=>false,"d",null=>false,"f");
while(key($ar3)!==null){
    echo key($ar3)."=>".current($ar3)."\n";
    next($ar3);
}
?>

原文:https://blog.csdn.net/asty9000/article/details/82263402

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章