La mayoría de las veces necesitamos almacenar una array compleja en la base de datos o en un archivo de PHP. Seguro que algunos de nosotros hemos buscado alguna función integrada para realizar esta tarea. Las arrays complejas son arrays con elementos de más de un tipo de datos o array.
Pero, ya tenemos una solución práctica para manejar esta situación. No tenemos que escribir nuestra propia función para convertir la array compleja en una string formateada. Hay dos métodos populares para serializar variables.
- publicar por fascículos()
- deserializar()
Podemos serializar cualquier dato en PHP usando la función serialize(). La función serialize() acepta un solo parámetro que son los datos que queremos serializar y devuelve una string serializada. El siguiente programa ilustra esto:
<?php // a complex array $myvar = array( 'hello', 42, array(1, 'two'), 'apple' ); // convert to a string $string = serialize($myvar); // printing the serialized data echo $string; ?>
Producción:
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i: 0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
Del código anterior, tenemos una variable con datos serializados, $string . Podemos deserializar el valor de la variable usando la función unserialize() para volver al valor original de la array compleja , $myvar .
El siguiente programa ilustra las funciones serialize() y unserialize():
<?php // a complex array $myvar = array( 'hello', 42, array(1, 'two'), 'apple' ); // serialize the above data $string = serialize($myvar); // unserializing the data in $string $newvar = unserialize($string); // printing the unserialized data print_r($newvar); ?>
Producción:
Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two ) [3] => apple )
Este fue el método de serialización de PHP nativo. Sin embargo, dado que JSON se ha vuelto tan popular en los últimos años, decidieron agregarle soporte en PHP 5.2. Ahora puede usar las funciones json_encode() y json_decode() también para serializar y deserializar datos en PHP respectivamente.
Dado que el formato JSON es solo texto, se puede enviar fácilmente hacia y desde un servidor y se puede utilizar como formato de datos en cualquier lenguaje de programación.
Veamos cómo usar json_encode() en PHP:
<?php // a complex array $myvar = array( 'hello', 42, array(1, 'two'), 'apple' ); // serializing data $string = json_encode($myvar); // printing the serialized data echo $string; ?>
Producción:
["hello",42,[1,"two"],"apple"]
Podemos decodificar los datos codificados en el programa anterior usando la función json_decode() para obtener la array compleja original. El siguiente programa ilustra esto:
<?php // a complex array $myvar = array( 'hello', 42, array(1, 'two'), 'apple' ); // serializing data $string = json_encode($myvar); // decoding the above encoded string $newvar = json_decode($string); // printing the decoded data print_r($newvar); ?>
Producción:
Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two ) [3] => apple )
Nota : la codificación y decodificación JSON es más compacta y, lo mejor de todo, compatible con javascript y muchos otros lenguajes. Sin embargo, para objetos complejos, se puede perder algo de información.
Publicación traducida automáticamente
Artículo escrito por Saptarshi_Das y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA