php中list,each,foreach的区别

list,each,foreach进行代码说明
<?php $data = array('a' => 'data1', 'b' => 'data2', 'c' => 'data3'); while($element = each($data)) { echo ($element['key']); echo "/n<br>"; echo ($element['value']); echo "/n<br>"; print_r($element); echo "/n<br>";
} reset($data); /*
返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键
值为 01keyvalue。单元 0key 包含有数组单元的键名,1value 包含有数据。如果内部
指针越过了数组的末端,则 each() 返回 FALSE。 */
while(list($subscript,$value) = each($data))
{ echo "$subscript=>$value";
echo "/n<br>";
} reset($data);
/*
在执行 each() 之后,数组指针将停留在数组中的下一个单元或者当碰到数组结尾时停留在最后一个单元。如果要再用 each 遍历数组,必须使用 reset()
*/
foreach($data as $subscript => $value) //$subscript,下标索引 ,$value值; { echo "$subscript => $value :: "; echo "$subscript => $value/n<br>";
echo $data[$subscript].'<br>';//输出值
}
/*
这只是一种遍历数组简便方法。 foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()
 除非数组是被 引用foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。不过原数组的内部指针 的确在处理数组的过程中向前移动了。假定 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。 自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的单元。此方法将以 引用赋值而不是拷贝一个值。
*/
?>
运行结果:
a data1 Array ( [1] => data1 [value] => data1 [0] => a [key] => a ) b data2 Array ( [1] => data2 [value] => data2 [0] => b [key] => b ) c data3 Array ( [1] => data3 [value] => data3 [0] => c [key] => c ) a=>data1 b=>data2 c=>data3 a => data1 :: a => data1 b => data2 :: b => data2 c => data3 :: c => data3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值