请教PHP中JSON字符串取值问题
伊谢尔伦
伊谢尔伦 2017-04-11 10:34:57
[PHP讨论组]

MYSQL中字段shezhi的内容是

a:1:{s:4:"sale";a:3:{s:10:"enoughfree";i:1;s:11:"enoughorder";d:123;s:11:"enoughareas";s:0:"";}}

PHP中取值代码是

'by' => (!(empty($goods['detail_by'])) ? $goods['detail_by'] : $shop['shezhi'])

取得的值是shezhi字段的全部内容,请问如何修改代码,只取值123那个值

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
天蓬老师
a:1:{s:4:"sale";a:3:{s:10:"enoughfree";i:1;s:11:"enoughorder";d:123;s:11:"enoughareas";s:0:"";}}

是序列化后的值,可以用unserialize函数转换

$before = 'a:1:{s:4:"sale";a:3:{s:10:"enoughfree";i:1;s:11:"enoughorder";d:123;s:11:"enoughareas";s:0:"";}}';

$after = unserialize($before);

var_dump($after);

输出结果是

array(1) {
  ["sale"]=>
  array(3) {
    ["enoughfree"]=>
    int(1)
    ["enoughorder"]=>
    float(123)
    ["enoughareas"]=>
    string(0) ""
  }
}

要取哪个值就直接取

高洛峰

很明显 shezhi 字段存储的应该是经过 serialize 处理后的PHP值,你可以先将其 unserialize 反序列化,让其显现出原本的数据结构,这样你在取值就简单了。

怪我咯
unserialize($shop)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号