php foreach help - PullRequest
       12

php foreach help

0 голосов
/ 03 мая 2009

У меня есть набор данных с 4 рядами. Я использую 2 цикла foreach для вывода моих данных. Внешний цикл foreach должен выполнить цикл один раз, а внутренний цикл - 4x. Есть ли способ сделать это или мне нужно разделить массив?

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

Ответы [ 2 ]

1 голос
/ 03 мая 2009

Сначала проверьте содержимое переменной $ reports, используя функцию var_dump из php:

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"
  }
}

Затем вы можете реализовать свой цикл, просматривая фактические данные, которые у вас есть, в зависимости от того, как сформированы ваши зубчатые массивы.

1 голос
/ 03 мая 2009

Я до сих пор не уверен, как выглядит ваша структура данных. Для меня, чтобы иметь возможность использовать "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'];
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...