2009-11-01 14 views
5

Si tengo una matriz serializada ... ¿cómo puedo agregarle más valores? ¿Debería deserializarlo primero -> agregar datos y luego serializarlos nuevamente?PHP ¿Cómo puedo anexar datos en una matriz serializada

+1

Obviamente, la serialización será la mejor manera de hacerlo. Sin embargo, si tiene una gran matriz serializada, repetir este proceso una y otra vez será muy ineficiente. ¿La matriz NECESITA ser serializada en primer lugar? – BraedenP

Respuesta

14

Sí.

function addItem($serializedArray, $item) 
{ 
    $a = unserialize($serializedArray); 
    $a[] = $item; 
    return serialize($a); 
} 
+0

Si va a utilizar una función, puede ser más eficiente pasar $ serializedArray por referencia y hacer que añada el nuevo elemento directamente a la matriz a la que se hace referencia en lugar de devolver el nuevo valor y configurarlo nuevamente. – BraedenP

+0

@BraedenP. Parece que podría ser una buena mejora. Creo que también me tomaría un poco más de tiempo nombrar la función y sus variables. –

3

Desescalar es el camino a seguir, definitivamente. A menos que tenga una cadena enorme, sería muy recomendable, a menos que desee hacer su propio intérprete estricto.

Cambiar cualquier cosa de una matriz serial/objeto se debe hacer con mucho cuidado: ¡un caracter extra solo rompería todo si no actualiza todos los números anteriores que definen cada pieza de estructura!

0

sí, esta es la única manera (fiable)