2012-06-02 23 views
5

Si tengo la siguiente matriz. ¿Cuál sería la mejor manera de agregar un elemento a list[] para el último elemento de $myArray[]? Tenga en cuenta que list[] tiene índices numéricos (es decir, no asociativos). ¡Gracias!Agregar elementos al último elemento de la matriz

$myArray[] = array('name' => 'hello', 'list' => array()); 
+1

Su pregunta es un poco confusa. ¿Podría publicar un ejemplo de cómo debería ser su resultado? –

Respuesta

5

Si $ miMatriz no es asociativa

array_push($myArray[count($myArray)-1]['list'], 'new element'); 

o

$myArray[count($myArray)-1]['list'][] = 'new element'; 

con este método se cambia la posición del puntero de la lista.

+0

Sí, esto funcionará. No sabía si había una solución más limpia usando end() – user1032531

+0

cuando usa end obtiene una copia del último valor, no una referencia. Entonces, si cambias el valor, no afecta la matriz. Si usa 'end', primero tiene que llamarlo, luego use' key' para obtener la clave del último elemento y luego puede modificar la matriz. Si '$ myArray' no es asociativo, es posible que desee hacer eso. – clentfort

+0

¡¡¡Gracias !!!!!!!!!! – user1032531

4

Puede hacerlo de esta manera:

$last = array_pop($myArray); // remove last element of array 
$last['list'][] = "new element"; // add element to array 
$myArray[] = $last; // add changed last element again 
+0

Parece que esto también funcionará. Gracias – user1032531

-2

array_push función de hacer eso.

array_push() 
+0

Después del [manual PHP] (http://php.net/manual/en/function.array-push.php) esto tiene el mismo efecto que '$ array [] = $ var;' que ha utilizado en su código ya. Así que no creo que esté buscando esto. – noob

1
$myArray[count($myArray)-1]['list'][]="something to go in 'list' array";//this shall append 
//to the second dimension array with keyname 'list' 
+0

En lugar de $ myArray [0], necesitaría apuntar al último elemento de $ myArray, no 0. – user1032531

+0

Ah, mi mal. Verifica mi edición –

+0

Gotcha. La misma solución que Clenfort. ¡Gracias! – user1032531

0

En realidad, hay una manera más hermosa (en mi opinión):

$ref = &$myArray[]; 
$ref['list'][] = 'new item' 

Como se puede ver $ ref - es referencia al último elemento de $ miMatriz, por lo que puede cambiar el último elemento al cambiar $ ref;

Cuestiones relacionadas