您的位置:首页 > 编程语言 > PHP开发

谈一谈PHP中数组元素的遍历

2017-10-10 13:50 78 查看
PHP 中的数组实际上是一个有序映射。每个元素都是一个键值对(key=>value),在PHP的数组中,数组的key通常为整数或字符串,数组元素的value可以是整数、浮点数、字符串甚至另一个数组或对象。

. 当数组的键为连续键时,可以利用for循环来遍历该数组的元素:

代码示例:

<?php
$numbers = range(1, 5);
for ($i=0; $i <count($numbers) ; $i++) {
echo "the element is ".$numbers[$i]."<br/>";
}
?>


显示结果:



. 当数组的键为非连续键时:

①使用 while() 和 list(),each()配合使用。

代码示例:

<?php
$arr= array('php','python','java','go');
while(list($key,$val)= each($arr)) {
echo "This language element is $val.<br />";
}
?>


显示结果:



注意:list()语言结构仅用于数字“键”的数组,并且要求数字“键”从0开始连续递增,关联数组并不能赋值,或者是既有数字索引又有关联索引,就会只取数组里面的数字索引元素。each()返回数组中当前的键/值对并将数组指针向前移动一步.

foreach( )则是更加常用的方法:

对于foreach( ),有以下两种语法,

1. foreach (array_expression as $value)
statement
2. foreach (array_expression as $key => $value)
statement


第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。 第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

代码示例:

<?php
$a = array('a'=>'f76g', 2=>'b', 'c','d'=>'csd32');
foreach ($a as $aa){
echo "This element is $aa! <br />";
}
?>


显示结果:



代码示例:

<?php
$a = array('a'=>'f76g', 2=>'b', 'c','d'=>'csd32');
foreach ($a as $key=>$value){
echo "This element is $value! <br />";
}
?>


显示结果:



注意:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。

③使用next( )函数和循环语句遍历

代码示例;

<?php
$colors = array('orange', 'red', 'yellow');
$fruits = array('orange', 'apple', 'banana');
$temp = array_combine($colors, $fruits);
reset($temp);
do{
$key = key($temp);
$value = current($temp);
echo $key." ==> ".$value."<br/>";
}while(next($temp));
?>


显示结果:



855f

注意:

由于使用next( )函数返回数组下一个元素“值”,如果这个“值”为空,循环将不能继续执行下去,遍历有可能失败。因此,如果数组中的某个元素“值”为空,则不能用next( )函数遍历数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 遍历 对象 numbers