PHP | Serializing Data - GeeksforGeeks

23 Aug, 2019
Most often we need to store a complex array in the database or in a file from PHP. Some of us might have surely searched for some built-in function to accomplish this task. Complex arrays are arrays with elements of more than one data-types or array.But, we already have a handy solution to handle this situation. We don’t have to write our own function to convert the complex array to a formatted string. There are two popular methods of serializing variables.
serialize()
unserialize()
We can serialize any data in PHP using the serialize() function. The serialize() function accepts a single parameter which is the data we want to serialize and returns a serialized string. Below program illustrate this:
<?php  // a complex array$myvar = array(    'hello',    42,    array(1, 'two'),    'apple');  // convert to a string$string = serialize($myvar);  // printing the serialized dataecho $string;  ?>
Output:
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";}

From the above code, we have a variable with serialized data, $string . We can unserialize the value of the variable using unserialize() function to get back to the original value of the complex array, $myvar.
Below program illustrate both serialize() and unserialize() functions:
<?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);  ?>
Output:
Array
(
    [0] => hello
    [1] => 42
    [2] => Array
        (
            [0] => 1
            [1] => two
        )

    [3] => apple
)

This was the native PHP serialization method. However, since JSON has become so popular in recent years, they decided to add support for it in PHP 5.2. Now you can use the json_encode() and json_decode() functions as well for serializing and unserializing data in PHP respectively.
Since the JSON format is text only, it can be easily sent to and from a server and can be used as a data format by any programming language.
Lets have a look how to use json_encode() in PHP:
<?php  // a complex array$myvar = array(    'hello',    42,    array(1, 'two'),    'apple');  // serializing data$string = json_encode($myvar);  // printing the serialized dataecho $string;  ?>
Output:
["hello",42,[1,"two"],"apple"]

We can decode the data encoded in above program using the json_decode() function to get the original complex array. Below program illustrate this:
<?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);  ?>
Output:
Array
(
    [0] => hello
    [1] => 42
    [2] => Array
        (
            [0] => 1
            [1] => two
        )

    [3] => apple
)

Note: JSON encoding and decoding is more compact, and best of all, compatible with javascript and many other languages. However, for complex objects, some information may be lost.
Akanksha_Rai
PHP-basics
PHP
Web Technologies
PHP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to convert array to string in PHP ?
PHP | Converting string to Date and DateTime
How to fetch data from localserver database and display on HTML table using PHP ?
How to run JavaScript from PHP?
How to pass JavaScript variables to PHP ?
Roadmap to Become a Web Developer in 2022
Installation of Node.js on Linux
Top 10 Projects For Beginners To Practice HTML and CSS Skills
How to fetch data from an API in ReactJS ?
How to insert spaces/tabs in text using HTML/CSS?