php中数组遍历的四种方式
http://blog.csdn.net/wks19891215/article/details/51615384
php中数组遍历的四种方式 . 首先要讲一点的是:PHP中的数组与C/C++中的数组不同。 它是基于键值对结构的hash表来实现的(存在key/value的概念)。有点类似于Python和lua中的dictionary。 在没有显示指定key的情况下,默认以索引(0,1,2,3...)的形式来填充key字段。 另外,数组的使用时有一个指针的概念,有点像C++中的迭代器。迭代器总是指向容器中当前使用的对象。 下面来看php中的数组的四种遍历方式: [php] view plain copy 01.<?php 02. 03. 04.$data = array( 05. 'a' => "AA", 06. 'b' => "BB", 07. 'c' => "CC" 08.); 09.$indexData = array( 10. '0' => "AA", 11. '1' => "BB", 12. '2' => "CC" 13.); 14. 15. 16.//第一种遍历方式,只适用于索引数组。PHP数组在没有指明key的情况下,默认是索引数组 17.for ($i = 0; $i < sizeof($data); $i++) { 18. echo $indexData[$i] . "1" . "<br>"; 19.} 20. 21. 22.//第二种遍历方式。可同时用于索引数组和关联数组,取出key和value 23.foreach ($data as $key => $value) { 24. echo $value . "2" . "<br>"; 25.} 26. 27. 28.//第三种遍历方式,可同时用于索引数组和关联数组,只取出value。(会改变数组当前指针) 29.foreach ($data as $value) { 30. echo $value . "3" . "<br>"; 31.} 32. 33. 34.//第四种遍历方式.可同时用于索引数组和关联数组,取出key和value(会改变数组当前指针) 35.//因$data数组的指针在第三种方式中已经指向了数组尾部,故换一个数组 36.while (list($key, $value) = each($indexData)) { 37. echo $value . "4" . "<br>"; 38.} 39. 40. 41.?> 输出结果: [plain] view plain copy 01.AA1 02.BB1 03.CC1 04.AA2 05.BB2 06.CC2 07.AA3 08.BB3 09.CC3 10.AA4 11.BB4 12.CC4 前三种都很容易看懂,下面来解释下第四种用法: each函数用来取出数组中当前指针指向的key/value对,然后将指针后移一位。 list函数用来将each函数取出的key/value对的值分别赋给两个变量。