In PHP, the complex data can not be transported or can not be stored. If you want to execute continuously a complex set of data beyond a single script then this serialize() and unserialize() functions are handy to deal with those complex data structures. The serialize() function is just given a compatible shape to a complex data structure that the PHP can handle that data after that you can reverse the work by using the unserialize() function.
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.
Serialize() Function: The serialize() is an inbuilt function PHP that is used to serialize the given array. The serialize() function accepts a single parameter which is the data we want to serialize and returns a serialized string.
- Syntax:
serialize( $values_in_form_of_array )
- Below program illustrate the Serialize() function.
Program:<?phpÂ
Â
Â// Complex arrayÂ
$myvar
=
array
(Â
   Â
'hello'
,Â
   Â
42,Â
   Â
array
(1,
'two'
),Â
   Â
'apple'
);Â
Â
Â// Convert to a stringÂ
$string
= serialize(
$myvar
);Â
Â
Â// Printing the serialized dataÂ
echo
$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";}
Unserialize() Function: The unserialize() is an inbuilt function php that is used to unserialize the given serialized array to get back to the original value of the complex array, $myvar.
- Syntax:
unserialize( $serialized_array )
- Below program illustrate both serialize() and unserialize() functions:
Program:<?phpÂ
Â
Â// 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 )
Note: For more depth knowledge you can check PHP | Serializing Data article.