serialize()与unserialize()数组的反序列化

2019年12月2日23:06:37 评论 86 次浏览

今天在读取一个表中的字段的时候,发现是这种格式的

a:17:{s:2:"id";s:3:"140";s:7:"uniacid";s:2:"19";s:6:"openid";s:28:"ouPL3w0096buOT-_DMVTEkntgPTI";s:8:"realname";s:9:"焦国强";s:6:"mobile";s:11:"15269847585";s:8:"province";s:9:"山东省";s:4:"city";s:9:"泰安市";s:4:"area";s:9:"岱岳区";s:7:"address";s:47:"科技中路77号山东国泰科技有限公司";s:9:"isdefault";s:1:"1";s:7:"zipcode";s:0:"";s:7:"deleted";s:1:"0";s:6:"street";s:0:"";s:9:"datavalue";s:0:"";s:15:"streetdatavalue";s:0:"";s:3:"lng";s:0:"";s:3:"lat";s:0:"";}

怎么读取这个表中的信息呢,看着挺乱的,其实,这就是序列号后的数据,通过把数组序列化,可以在一个字段中就存储大量的数据,不用建立那么多的字段了,使用的时候,只要反序列化unserialize($data)就行了。

如何读取上面的数据呢?

$data = '序列化数据';//注意使用单引号
$res = unserialize($data);
var_dump($res);

读取的结果是一个一位数组,格式如下:

array(17) {
  ["id"]=>
  string(3) "140"
  ["uniacid"]=>
  string(2) "19"
  ["openid"]=>
  string(28) "ouPL3w0096buOT-_DMVTEkntgPTI"
  ["realname"]=>
  string(9) "焦国强"
  ["mobile"]=>
  string(11) "15269847585"
  ["province"]=>
  string(9) "山东省"
  ["city"]=>
  string(9) "泰安市"
  ["area"]=>
  string(9) "岱岳区"
  ["address"]=>
  string(47) "科技中路77号山东国泰科技有限公司"
  ["isdefault"]=>
  string(1) "1"
  ["zipcode"]=>
  string(0) ""
  ["deleted"]=>
  string(1) "0"
  ["street"]=>
  string(0) ""
  ["datavalue"]=>
  string(0) ""
  ["streetdatavalue"]=>
  string(0) ""
  ["lng"]=>
  string(0) ""
  ["lat"]=>
  string(0) ""
}
继续阅读
weinxin
加我微信
微信扫一扫,加我微信好友,共同交流,共同进步! (备注:焦国强博客)
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: