2013-09-06 6 views
6

Jestem nowa dla tablic w PHP i próbuję zawrzeć mój umysł wokoło jak zrobić wielowymiarową tablicę asocjacyjną. Chciałbym tablicę wyglądać tak, gdy używam print_r:Wielowymiarowa tablica asocjacyjna (PHP)

Array ([0] => Array ([alert] => alert [email] => Test)) 

Zamiast uzyskać to:

Array ([0] => Array ([alert] => Array ([email] => Test))) 

Kod używam to:

$alert_array = array(); 

$alert_array[]["alert"]["email"] = "Test"; 

Pomyślałem, że próba czegoś podobnego będzie działać, ale oczywiście moja składnia jest trochę za mała. Myślę, że jestem nieco na dobrej drodze chociaż ?:

$alert_array[][["alert"]["email"]] = "Test"; 

Dziękuję za pomoc (przepraszam, jeśli to jest bardzo prosty, nie mogłem znaleźć żadnych pytań, które adresowane to dokładnie)!

+0

Spróbuj z 'array_push'. – elclanrs

+0

@elclanrs, nadal nie wiem, jak przesłać tylko wartość "e-mail" lub po prostu "alert" wartość z array_push? – MillerMedia

Odpowiedz

19
$alert_array = array(); 
$alert_array[] = array('alert' => 'alert', 'email' => 'Test'); 
... 
var_dump($alert_array); 

W twoim przypadku trzeba by określić key tak:

$alert_array[$key]["alert"] = "alert"; 
$alert_array[$key]["email"] = "Test"; 

Trzeba mieć pętli z licznikiem też.

Jeśli używasz PHP 5.4+ można używać krótkich składni tablicy:

$alert_array = []; 
$alert_array[] = ['alert' => 'alert', 'email' => 'Test']; 
+0

Och, wow, idealnie. O wiele prostszy, niż myślałem, nie zdawałem sobie sprawy, że można to zrobić w tak podstawowy sposób (byłem zdecydowanie nadopiekuńczy). Dzięki! (przy okazji, zaakceptuję twoją odpowiedź za kilka minut, kiedy to pozwoli) – MillerMedia

+0

@MxmastaMills nie ma za co, poproś o cokolwiek, kiedy jesteś tutaj :) –

+0

Kolejne szybkie pytanie dla ciebie, szukam "wypychania" nowych obiekty do tablicy za pomocą tej metody. Próbowałem użyć array_push ($ alert_array, 'alert' => 'alert', 'email' => 'Test'); ale to nie zadziałało (zakładam, że dzieje się tak z powodu drugiego przecinka). Zasadniczo próbuję dodać obiekty do końca tablicy, ponieważ moja pętla działa ... – MillerMedia

0

jeśli umieścisz już istniejącej tablicy wewnątrz nową tablicę używając array function, wówczas wynik będzie tablica wielowymiarowa

$alert_array = array(); 
    $alert_array[] = array('alert' => 'alert', 'email' => 'Test'); 
    print_r($alert_array); 

    /* result will be 
    Array ([0] => Array ([alert] => alert [email] => Test)) 
    */ 

W tym przypadku wynik będzie Array jednowymiarowej

$alert_array = array(); 
while($variable = mysqli_fetch_assoc($something)) { 
$alert_array[] = $variable; 
} 

proszę również odnieść się do: array function