2011-12-27 2 views
1

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

$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. 
+0

Try, чтобы очистить ваш отступы, прежде чем спрашивать. – babonk

+0

Обновлен отступ, чтобы сделать код более удобочитаемым. @FirstLast, пожалуйста, отредактируйте свой вопрос, чтобы переместить 'echo $ ws. '
'; 'где он действительно живет в вашем коде. –

ответ

1

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

Чтобы исправить:

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

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

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

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

+0

спасибо Aurelio De Rosa. –

1
echo $ws.'<br/>' 

должен быть внутри скобок

Смежные вопросы