Wątek przeniesiony 2015-08-09 13:48 z PHP przez dzek69.

Deklaracja tablicy 2D

0

Chciałem stworzyć tablice 3 na 3 do której moge wrzucić jakiś element.

$tab[][] = ""; 

I teraz na przykład wrzucę

$tab[1][1] = "Hej"; 

Jak chcę sprawdzić czy są jakieś wpisy np w 3 kolumnach i 3 wierszach i zrobię pętlę

for($x < 3)
    for($y < 3)
        if (!empty($tab[$x][$y]) 
            echo "coś jest";

To mam błąd, że

Undefined offset: 1

To jak zadeklarować tablice 3 na 3 ?

Znalazłem w manualu taką funkcję:

$tab = array_fill(0, 3, array_fill(0, 3, null));

I po zrzucie wygląda że to by było to co chciałem.
Ale czy muszę tak robić ? nie wystarczy

$tab[3][3] = '';

?

1

Tablice w PHP są dosyć magiczne. Prawdę mówiąc nie są to tablice tylko mapy. Polecam poczytać część dokumentacji:

http://php.net/manual/en/language.types.array.php

Nie musisz deklarować tablic, możesz ją sobie stworzyć wypełnioną danymi lub dodawać elementy dynamicznie:

<?php

$tab = [
	[1, 2, 3],
	[1, 2, 3]
];

$secondTab[0][0] = 1;
$secondTab[0][1] = 2;
$secondTab[0][2] = 3;
$secondTab[1][0] = 1;
$secondTab[1][1] = 2;
$secondTab[1][2] = 3;

print_r($tab);
print_r($secondTab);

Co do wypisywania, to też masz dwa sposoby:

for($i = 0; $i < 2; $i++) {
	for($j = 0; $j < 3; $j++) {
		echo $tab[$i][$j];
	}
}

foreach($tab as $first) {
	foreach($first as $second) {
		echo $second;
	}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1