首页 > 语言 > PHP > 正文

PHP 遍历数组语句总结(foreach,for,list,each)

2024-09-04 11:46:00
字体:
来源:转载
供稿:网友

在php中遍历循环读出数组的方法有几种,foreach,for,list,each,while都是可以的,只是那种更适合用来遍历数组了。

foreach来访问,遍历的顺序是固定的么? 以什么顺序遍历呢?

比如:代码如下:

  1. <?php 
  2. $colorsarray('red','blue','green','yellow'); 
  3. foreach ($colors as $color){  
  4. //add your codes 
  5. ?> 

例2,代码如下:

  1. $capitalsarray("Ohio"=> "Columbus","Towa"=> "Des Moines","Arizona"=> "Phoenix"); 
  2. foreach($capitals as  $key=> $val){ 
  3. //add your codes 

while()

while() 通常和 list(),each()配合使用,实例代码如下:

  1. <?php 
  2. $colors = array('red','blue','green','yellow'); 
  3. while(list($key,$val) = each($colors)) { 
  4.  echo "Other list of $val.<br />"
  5. ?> 
  6. /* 
  7. 显示结果: 
  8. Other list of red. 
  9. Other list of blue. 
  10. Other list of green. 
  11. Other list of yellow. 
  12. */ 

3. for(),实例代码如下:

  1. <?php 
  2. $arr = array ("0" => "zero","1" => "one","2" => "two"); 
  3. for ($i = 0;$i < count($arr); $i++) { 
  4.  $str = $arr[$i]; 
  5.  echo "the number is $str.<br />"
  6. ?> 
  7. /* 
  8. 显示结果: 
  9. the number is zero. 
  10. the number is one. 
  11. the number is two. 
  12. */ 

以下是函数介绍:

key()

mixed key(array input_array)

key()函数返回input_array中位于当前指针位置的键元素。

实例代码如下:

  1. <?php 
  2. $capitals = array("Ohio" => "Columbus","Towa" => "Des Moines","Arizona" => "Phoenix"); 
  3. echo "<p>Can you name the capitals of these states?</p>"
  4. while($key = key($capitals)) { 
  5.  echo $key."<br />"
  6.  next($capitals); 
  7. //每个key()调用不会推进指针。为此要使用next()函数 
  8. ?> 
  9. /*结果如下 
  10. Can you name the capitals of these states? 
  11. Ohio 
  12. Towa 
  13. Arizona 
  14. */ 

each() 函数遍历数组

例子1,代码如下:

  1. <?php 
  2. $people = array("Peter""Joe""Glenn""Cleveland"); 
  3. print_r (each($people)); 
  4. ?> 
  5. //输出: 
  6. //Array ( [1] => Peter [value] => Peter [0] => 0 [key] => 0 ) 

例子2,代码如下:

each() 经常和 list() 结合使用来遍历数组,本例与上例类似,不过循环输出了整个数组,代码如下:

  1. <?php 
  2. $people = array("Peter""Joe""Glenn""Cleveland"); 
  3. reset($people); 
  4. while (list($key$val) = each($people)) 
  5.   { 
  6.   echo "$key => $val<br />"
  7.   } 
  8. ?> 
  9. /* 
  10. 输出: 
  11. 0 => Peter 
  12. 1 => Joe 
  13. 2 => Glenn 
  14. 3 => Cleveland 
  15. */ 

多维数组的递归遍历,代码如下:

  1. <?php 
  2. /* 
  3. *  ------------------------------------------------- 
  4. *   Author :  
  5. *   Url    : www.Vevb.com*   Date   : 2011-03-09 
  6. *  ------------------------------------------------- 
  7. */ 
  8. function arr_foreach ($arr)  
  9.  if (!is_array ($arr))  
  10.  { 
  11.   return false; 
  12.  } 
  13.  
  14.  foreach ($arr as $key => $val )  
  15.  { 
  16.   if (is_array ($val))  
  17.   { 
  18.    arr_foreach ($val); 
  19.   }  
  20.   else  
  21.   { 
  22.    echo $val.'<br/>'
  23.   } 
  24.  } 
  25. $arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5); 
  26. echo '<pre>'
  27. print_r($arr1); 
  28. echo '<pre>'
  29. arr_foreach ($arr1); 
  30. ?> 
  31. /* 
  32. 结果 
  33. Array 
  34. ( 
  35.     [1] => Array 
  36.         ( 
  37.             [0] => 11 
  38.             [1] => 12 
  39.             [2] => 13 
  40.             [14] => Array 
  41.                 ( 
  42.                     [0] => 141 
  43.                     [1] => 142 
  44.                 ) 
  45.         ) 
  46.     [2] => 2 
  47.     [3] => 3 
  48.     [4] => 4 
  49.     [5] => 5 
  50. ) 
  51. 11 
  52. 12 
  53. 13 
  54. 141 
  55. 142 
  56. 2 
  57. 3 
  58. 4 
  59. 5 
  60. */ 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表