数组的序列化(serialize)用来将数组的数据转换为字符串,以方便传递和数据库的存储。
与之相对应的操作就是反序列化(unserialize),把字符串数据转换为数组加以使用。
数组的序列化主要通过serialize()函数来完成。字符串的反序列化主要通过unserialize()函数来完成。
下面通过实例介绍serialize()函数和unserialize()函数的使用方法和技巧。
【例6.25】
<?php
$arr = array('王小明','李丽丽','方芳芳','刘小帅','张大勇','张明明');
$str = serialize($arr);
echo $str."<br/><br/>";
$new_arr = unserialize($str);
print_r($new_arr);
?>
运行结果如图6-34所示。
serialize()和unserialize()两个函数的使用比较简单,但是通过这样的方法对数组数据的存储和传递将会十分方便。比如,可以直接把序列化之后的数组数据存放在数据库的某个字段中。在使用时再通过反序列化进行处理。
补充:
数组的合并与联合的区别是什么?
对数组的合并使用array_merge()函数,两个数组的元素可以合并为一个数组的元素。而数组的联合是指两个一维数组(一个作为关键字,一个作为数组元素值)联合成为一个新的联合索引数组。
如何快速清空数组?
在PHP中,快速清空数组的方法如下:
arr=array() //理解为重新给变量赋一个空的数组
unset($arr) //这才是真正意义上的释放,将资源完全释放