php若干单维数组遍历方法的比较

复制代码 代码如下:

  <?php

  //a

  $arr=array('a'=>'abc','b'=>123,'c'=>true);

  //b

  //$arr=range('a','d');

  //1

  for($i=0;$i<sizeof($arr);$i++)

  echo $arr[$i].', ';

  echo '<br />';

  //2

  foreach($arr as $key)

  echo "$key, ";

  echo '<br />';

  //3

  foreach($arr as $key=>$val)

  echo "$key-$val, ";

  echo '<br />';

  //4

  reset($arr);

  while($item=each($arr)){

  echo $item['key'].'-'.$item['value'].', ';

  }

  echo '<br />';

  //5

  reset($arr);

  while(list($key,$val)=each($arr)){

  echo "$key-$val, ";

  }

  echo '<br />';

  ?>

  使用语句a $arr=array('a'=>'abc','b'=>123,'c'=>true); 对$arr进行初始化得到数字索引数组,输出如下:

  , , ,

  abc, 123, 1,

  a-abc, b-123, c-1,

  a-abc, b-123, c-1,

  a-abc, b-123, c-1, 使用语句b $arr=range('a','d'); 对$arr进行初始化得到关联数组,输出如下:

  a, b, c, d,

  a, b, c, d,

  0-a, 1-b, 2-c, 3-d,

  0-a, 1-b, 2-c, 3-d,

  0-a, 1-b, 2-c, 3-d, for循环只对数字索引有限;for和foreach遍历结束后不需要对数据进行reset()操作即可供下次遍历,而each方法则需要。