php数组如何存到数据库中?采用序列化方案serialize() 和 unserialize()

本文探讨了PHP中序列化与JSON编码的区别。通过实例演示了如何使用serialize和unserialize函数处理复杂数组,并讨论了JSON在处理复杂数据结构时可能存在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 一个复杂的数组 
$myvar = array( 
    'hello', 
    42, 
    array(1,'two'), 
    'apple'
); 

// 序列化 
$string = serialize($myvar); 

echo $string; 
/* 输出 
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";} 
*/

// 反序例化 
$newvar = unserialize($string); 

print_r($newvar); 
/* 输出 
Array 
( 
    [0] => hello 
    [1] => 42 
    [2] => Array 
        ( 
            [0] => 1 
            [1] => two 
        ) 

    [3] => apple 
) 
*/

在PHP5.2以后,PHP开始支持JSON,你可以使用 json_encode() 和 json_decode() 函数,但是这两个函数有致命的缺点:如果数据结构过于复杂,会造成数据丢失。
因此,如果确定数据不是很复杂,可以使用json,如果不确定数据的复杂程度,用serialize;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值