PHP: Como posso imprimir elementos de multidimensional array usando o foreach?

$shop = array( array("Rose", 1.25 , 15), array("Daisy", 0.75 , 25), array("Orchid", 1.15 , 7) ); for($i = 0; $i  $val) echo $key . ' = ' . $val . '
'; }

Então, este é o resultado que eu estou obtendo:

0 = Rose

1 = 1,25

2 = 15

0 = Daisy

1 = 0,75

2 = 25

0 = Orquídea

1 = 1,15

2 = 7

============================================

Mas então recebo um erro:

Aviso : argumento inválido fornecido para foreach ()

O que eu quero saber é como corrigir isso, e se existe uma maneira mais eficiente de escrever o que estou tentando produzir?

Obrigado rapazes.

O problema é que você usa <= vez de < . Então, o seu loop for dá um passo para longe e a matriz está fora dos limites.

 for($i = 0; $i < count($shop); $i++){ foreach($shop[$i] as $key => $val) echo $key . ' = ' . $val . '
'; }
 foreach ($Array AS $Values){ if (is_array($Values)){ foreach ($Values AS $Inner){ echo $Inner; } }else{ echo $Values; } } 

Eu pessoalmente iria para 2 loops foreach. Verifique se o valor passado é uma matriz, se for. Entre. Se não, imprima o valor

Ao iterar através de uma matriz, use sempre um foreach vez de um loop for .

 foreach ($shop as $foo) { foreach ($foo as $key => $val) { echo $key . ' = ' . $val . '
'; } }