遍历数组有多种实现方法
连续索引的数组
实现连续数组的遍历很简单因为数组的索引是连续的( ……)所以我们可以首先用count()函数计算出数组中元素的个数然后建立一个for循环如下
$subject=array("maths""english""physics");
$num_elements=count($subject); //这时$num_elements的值为
for ($i=;$i<$num_elements; ++$i){
echo ("$subject[$i]
n");
}
结果为
maths
english
physics
这里我们给$i赋了初值为是因为数组元素的索引默认为 如果第一个元素的索引不为我们只需
$subject=array(=>"maths""english""physics");
$num_elements=count($subject)+; //注意这里
for ($i=;$i<$num_elements; ++$i){
echo ("$subject[$i]
n");
}
这里将$i赋了值同时$num_elements=count($subject)+这里很容易被忽视
非连续索引的数组
$subject=array("m"=>"maths""e"=>"english""p"=>"physics");
这里建立了一个了数组索引值分别为"m" "e " "p"这样的数组怎么遍历?
方法一使用list()和each()函数组合
$subject=array("m"=>"maths""e"=>"english""p"=>"physics");
reset($subject); //把指针复位到第一个元素上
while (list($key$value)=each($subject)){
echo "$key is $value
n"; }
方法二使用foreach语句
$subject=array("m"=>"maths""e"=>"english""p"=>"physics");
foreach($subject as $key => $value){
echo "$key is $value
n";
}
?>
是不是比list()和each()简单
foreach 与 list()each()组合的不同之处
foreach 是在原来数组的拷贝上执行操作的他的优点是不会影响当前数组指针的位置缺点是对于一个很大的数组复制所花的时间很长
list() each()组合很明显用他遍历之后指针的位置改变了
方法三使用array_walk()函数遍历数组
array_walk()是让使用者自定义函数处理阵列中的每一个元素
$subject=array("maths""english""physics");
function printElement($element){
print ("$element
n");
}
array_walk($subject"printElement");
以上是网为您介绍的php中遍历数组方法希望对您有所帮助