php foreach帮助

时间:2009-05-03 12:29:50

标签: php loops

我有一个包含4行的数据集。我正在使用2个foreach循环来获取我的数据。外部foreach需要循环一次,我需要内循环来循环4x。有没有办法做到这一点,还是我需要分割数组?

  foreach($reports as $key=>$val)
  {
      if($val['rpt_type'] == 'Sooa')
      {
        foreach($val as $foo)
        {
          echo $foo['name'];
        }
      }
  }

2 个答案:

答案 0 :(得分:1)

我仍然不确定您的数据结构的外观。对我来说,为了能够使用“rpt_type”,它必须看起来像这样:

$reports = array(
    0 => array(
        'rpt_type' => '...',
        ...
        'rows' => array(
            'name' => '...',
            ...
        ),
    ),
    1 => ...
);

然后你可以用:

迭代它
foreach($reports as $report) {
    if($report['rpt_type'] == 'Sooa') {
        foreach($report['rows'] as $row) {
            echo $row['name'];
        }
    }
}

答案 1 :(得分:1)

首先,使用php:

的var_dump函数检查$ reports变量的内容
var_dump($reports);

它会打印出这样的东西:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

然后,您可以实现循环查看您拥有的实际数据,无论您的锯齿形数组是以何种方式形成。