最近恰好看到了 PHP 循环数组有多种方式,于是便总结一下这几种日常开发中,使用比较频繁的方式。


1、for

只支持索引数组,不支持关联数组

$array = ['a','b','c','d'];
for ($i=0;$i<count($array);$i++)
{
echo $array[$i].'-';
}

2、foreach

索引数组和关联数组都可以

foreach ($array as $key => $value)
{
echo $value.'-';
}

3、while(), list(), each() 结合

实质上是指针移动;支持索引数组和关联数组

注意:each() 在7.2以上版本已被弃用,会报 warning 警告错误

while ( list($key,$value)=each($array) )
{
echo '|'.$value.'-';
echo current($array);
}

4、数组指针

指针移动;支持索引数组和关联数组

do {
echo current($array);
} while ( next($array) );

拓展

foreach 和 list 可以嵌套解包

$array = [['a','b'],['c','d']];
foreach($array as list($a,$b))
{
echo $a.'-'.$b;
}