PHP顺序foreach

时间:2012-09-22 08:38:11

标签: php foreach sequential

伙计们我有一个像这样的数组:

  array(3) {
    [2]=>
    array(1) {
      ["name"]=>
      array(2) {
        [0]=>
        string(13) "row1"
        [1]=>
        string(13) "row3"
      }
    }
    [5]=>
    array(1) {
      ["name"]=>
      array(2) {
        [0]=>
        string(15) "row1"
        [1]=>
        string(15) "row3"
      }
    }
    [3]=>
    array(1) {
      ["name"]=>
      array(2) {
        [0]=>
        string(13) "row1"
        [1]=>
        string(13) "row3"
      }
    }

我想要实现的是让foreach循环0个元素(row1)然后循环遍历1(row3)并继续这样做。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以尝试重建阵列:

$rows = array();
foreach($array as $subarray) 
  foreach($subarray as $key => $value)  
    $rows[$key][] = $value;

此时,数组中的相同子元素在一个新数组中,现在您可以轻松地遍历子元素:

  foreach($rows as $key => $value)  
    echo 'processing row: ' . $key ' with value ' . $value;

答案 1 :(得分:0)

我发现了一个解决这个问题的不同方法,JvdBeg解决方案工作得非常好,但如果有人遇到类似情况,我就是这样做的:         $ key = key($ arr);         $ keys = array_keys($ arr);

    for ($i=0;$i<sizeof($arr[$key]['index']);$i++) {
      for($k=0;$k<sizeof($arr);$k++) {
        $key = $keys[$k];
        echo "\n";
      }
    }