PHP многомерный массив - цикл foreach, показывающий последний массив - PullRequest
1 голос
/ 27 декабря 2011

У меня есть многомерный массив следующим образом: -

$worksheet = array(
  'sheet 1' => array(
    '#1 sheet 1',
    ' #2 sheet 1',
    '#3 sheet 1'
  ),

  'sheet 2' => array(
    '#1 sheet 2',
    '#2 sheet 2'
  ),

  'sheet 3' => array(
    '#1 sheet 3',
    '#2 sheet 3'
  )
);

тогда я запускаю код PHP, как показано ниже:

foreach($worksheet as $ws=>$value)
  echo $ws.'<br/>';
{
  foreach($value as $sheet=>$ivalue)
  {
    echo $ivalue.'<br/>';
  }
}

Приведенный выше код будет генерировать только последний массив, например:

sheet 1,  sheet 2,  sheet 3,  #1 sheet 3,  #2 sheet 3

что случилось с моим:

#1 sheet 1, #2 sheet 1, #3 sheet 1, #1 sheet 2, #2 sheet 2.

Ответы [ 3 ]

1 голос
/ 27 декабря 2011

Потому что вы сделали ошибку. Вторая и третья строки вашего кода перевернуты. Код должен быть таким:

foreach($worksheet as $ws=>$value)
{
         echo $ws.'<br/>';

Таким образом, ваш код зацикливается с внешним foreach через эхо, а затем в «секции», заключенной в квадратные скобки {, выполняет другой цикл (внутренний foreach).

1 голос
/ 27 декабря 2011
echo $ws.'<br/>'

должно быть в скобках

1 голос
/ 27 декабря 2011

Исправьте ваш синтаксис. echo находится не внутри {} s, как вы предполагаете. В противном случае PHP будет предполагать, что вы просто намереваетесь сделать эхо, и не поймет, что вы хотите сделать внутренний цикл.

Исправить:

foreach($worksheet as $ws=>$value)
{
     echo $ws.'<br/>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...