Estoy tratando de agregar un nuevo elemento a una matriz a partir de valores de formulario en php. Sin embargo, cada vez que hago esto, sobrescribo el elemento más reciente. Entonces mi matriz existente es así:
$moviepages = [[ "title" => "test1", "description" => "this is my test" ] ];Y quiero agregarle esto (creado a través de valores de formulario):
$newfile = [ "title" => "test2", "description" => "test2", ];al hacer esto:
$moviepages[] = $newfile;Sin embargo, necesito agregar elementos continuamente para que cuando ingresen diferentes usuarios puedan agregar elementos a la misma matriz sin que se elimine el elemento de la matriz anterior. ¿Hay alguna forma de hacer esto? ¡Gracias!
Si los valores de su formulario se almacenan en una matriz, puede intentar usar array_merge() para fusionar las dos matrices. Por ejemplo;
array_merge($moviepages, $newFile)EDITAR
También puede probar la función array_merge_recursive() ya que no elimina las entradas anteriores sino que simplemente crea una nueva matriz para esos valores. Por ejemplo;
Este código;
$a1=array("a"=>"red","b"=>"green"); $a2=array("c"=>"blue","b"=>"yellow"); print_r(array_merge_recursive($a1,$a2));producirá este resultado;
Array ( [a] => red [b] => Array ( [0] => green [1] => yellow ) [c] => blue )Esta explicación es de w3schools para la diferencia entre los dos.
La diferencia entre esta función (array_merge_recursive()) y la función array_merge() es cuando dos o más elementos de la matriz tienen la misma clave. En lugar de anular las claves, la función array_merge_recursive() convierte el valor en una matriz.
En cuanto a file_put_contents-, intente consultar w3schools y tutorialspoint
Avísame si te funciona o si tienes algún problema.