2013-09-06 23 views
6

Sono nuovo agli array in PHP e sto cercando di comprendere come creare un array associativo multidimensionale. Mi piacerebbe l'array a guardare come questo quando uso print_r:Array associativo multidimensionale (PHP)

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

Invece ottengo questo:

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

Il codice che sto usando è questo:

$alert_array = array(); 

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

Ho pensato che provare qualcosa del genere avrebbe funzionato, ma ovviamente la mia sintassi è un po 'spenta. Penso di essere un po 'sulla strada giusta anche se ?:

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

Grazie per il vostro aiuto (scusate se questo è super semplice, non ho trovato tutte le domande che hanno affrontato questo esattamente)!

+0

Provare con 'array_push'. – elclanrs

+0

@elclanrs, non so ancora come spingere solo il valore 'email' o solo il valore 'alert' con array_push? – MillerMedia

risposta

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

Nel tuo caso si avrebbe dovuto specificare key in questo modo:

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

che avrebbe dovuto avere un ciclo con contatore troppo.

Se stai usando PHP 5.4+ è possibile utilizzare la sintassi breve array:

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

Oh wow, perfetto. Più semplice di quanto pensassi, non mi rendevo conto che si poteva fare in un modo così elementare (stavo pensando troppo). Grazie! (btw, accetterò la tua risposta tra un paio di minuti quando lo consentirà) – MillerMedia

+0

@MxmastaMills sei il benvenuto, chiedi tutto mentre sei qui :) –

+0

Un'altra domanda veloce per te, sto cercando di "spingere" di nuovo oggetti all'array con questo metodo. Ho provato a usare array_push ($ alert_array, 'alert' => 'alert', 'email' => 'Test'); ma non ha funzionato (suppongo che questo sia dovuto alla seconda virgola). In pratica sto provando ad aggiungere oggetti alla fine dell'array mentre il mio loop gira ... – MillerMedia

0

se si mette un array già esistente all'interno di un nuovo array utilizzando array function, allora il risultato sarà array multi-dimensionale

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

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

In questo caso, risultato sarà array monodimensionale

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

fare riferimento anche a array function

Problemi correlati