2010-12-09 55 views
0

J'ai donc beaucoup de tableaux de la forme:Comment puis-je ajouter un tableau en tant qu'élément à un autre tableau en PHP?

$e = array( 
    "key1" => "value1", 
    "key2" => "value2", 
    "key3" => "value3", 
    "key4" =? "value4" 
); 

Et un autre tableau vient de déclarer que:

$a = array(); 

Ce que je veux est d'ajouter e $ à $ comme un élément, si

$a[0] = array( 
    "key1" => "value1", 
    "key2" => "value2", 
    "key3" => "value3", 
    "key4" =? "value4" 
); 

Je peux alors aller:

$count = count($a); 
for ($j = 0; $j < $count; $j++) 
{ 
    echo $a[$j]["key1"]; 
} 

et il va imprimer "value1".

Je vais répéter ce processus pour tous les $ e, donc $ a peut ne pas toujours être vide quand le $ e est ajouté - il peut avoir ajouté $ e précédemment. Je pensais que array_push ferait cela mais ce n'est pas le cas. Merci pour toute aide.

Répondre

3

La façon rapide et sale est assez simple:

$a[] = $e; 

puis le faire à nouveau pour tous les tableaux supplémentaires. Cela remplira le tableau $ a en commençant par l'index zéro et en l'incrémentant.

Si vous voulez utiliser une sorte de clés, vous pouvez faire:

$a['firstarray'] = $e; 

et d'accomplir la même chose. La différence est que puisque les clés doivent être uniques, une erreur dans cette seconde méthode pourrait écraser un élément existant. La première méthode n'a aucune chance de se produire.

+0

L'utilisation de $ a [] au lieu de array_push est un peu plus rapide pour les objets de moins de 100k –

+0

La méthode $ a [] a été la première chose que j'ai essayée avant array_push, mais cela ne fonctionnait pas non plus. Quoi qu'il en soit, je suppose que je vais travailler sur quelque chose ... – Nilo

+0

LOL, c'était une faute de frappe dans mon code, la méthode $ a [] a fonctionné après tout. Je suppose que les fautes de frappe sont beaucoup plus difficiles à faire lorsqu'on utilise des noms de variables à une lettre comme dans l'exemple que j'ai donné plus haut;) – Nilo