Musisz zrozumieć zasadę działania pętli foreach, bo widzę średnio ci to wychodzi i próbujesz coś kobinować z jedną pętlą. Żeby wyświetlić tablice wielowymiarową (tablica w tablicy) musisz zrobić to tak jak ty wyżej to zrobiłeś, albo umieścić pętle w pętli. Nie ważne w sumie jaką pętlę, może być to for, może być foreach lub while.
Kod
$tablica = array(1, 2, 3, 4, 5, 6);
foreach($tablica as $klucz => $wartosc)
{
echo $klucz.' - '.$wartosc.'<br>';
}
zmienna $klucz przechowuje klucz aktualnego elementu tablicy, a zmienna $wartość przetrzymuje jego wartość. Jeżeli przypiszesz do klucza nie jakąś zwykłą wartość, tylko tablice, wówczas w zmiennej $wartość przechowujesz całą tablice a jak masz już całą tablice, to powyższą pętlę możesz powtórzyć jeszcze raz, czyli umieścić pętlę w pętli:
Kod
$tablica = array(
1 => array(
'klucz1' => 'wartosc1'
),
2 => array(
'klucz2' => 'wartosc2'
),
3 => array(
'klucz3' => 'wartosc3'
),
4 => array(
'klucz4' => 'wartosc4'
),
5 => array(
'klucz5' => 'wartosc5'
),
6 => array(
'klucz6' => 'wartosc6'
));
foreach($tablica as $klucz => $wartosc)
{
echo $klucz.': <br> ';
//w tym momencie jeżeli wyświetlisz zmienną $wartosc, to otrzymasz wartość tej zmiennej, czyli tablice i wyświetli ci się nie cała tablica, a słowo Array.
//skoro wiesz że to tablica to wrzucasz zmienną $wartosc w jeszcze jedną tablicę
foreach($wartosc as $key => $val)
{
echo $key.' - '.$val.'<br>';
}
}
Otrzymać powinieneś coś takiego:
Kod
1:
klucz1 - wartosc1
2:
klucz2 - wartosc2
3:
klucz3 - wartosc3
4:
klucz4 - wartosc4
5:
klucz5 - wartosc5
6:
klucz6 - wartosc6
1-6 są kluczami pierwszej tablicy klucz1-klucz6 są kluczami 2 tablicy. Nie wiem czemu tego nie rozumiesz ale jest to jedna z prostszych rzeczy w chyba większości językach programowania