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);
}
?>

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值