首页 > 解决方案 > 将数组转换为 Json 以保存到数据库

问题描述

你好我有一个这样的数组:

$data = Array(
[0] => {"detail":"l,red","sku":"#123","price":"50","stok":""}
[1] => {"detail":"l,black","sku":"#123","price":"50","stok":""}
[2] => {"detail":"m,red","sku":"#123","price":"50","stok":""}
[3] => {"detail":"m,black","sku":"#123","price":"50","stok":""}
[4] => {"detail":"s,red","sku":"#123","price":"50","stok":""}
[5] => {"detail":"s,black","sku":"#123","price":"50","stok":""}
)

当我使用这个:

$data = json_encode($data , JSON_FORCE_OBJECT);

但结果如下:

{"0":"{\"detail\":\"l,red\",\"sku\":\"#123\",\"price\":\"50\",\"stok\":\"\"}","1":"{\"detail\":\"l,black\",\"sku\":\"#123\",\"price\":\"50\",\"stok\":\"\"}","2":"{\"detail\":\"m,red\",\"sku\":\"#123\",\"price\":\"50\",\"stok\":\"\"}","3":"{\"detail\":\"m,black\",\"sku\":\"#123\",\"price\":\"50\",\"stok\":\"\"}","4":"{\"detail\":\"s,red\",\"sku\":\"#123\",\"price\":\"50\",\"stok\":\"\"}","5":"{\"detail\":\"s,black\",\"sku\":\"#123\",\"price\":\"50\",\"stok\":\"\"}"}

我不喜欢“\”的结果。有什么不对?

标签: phparraysjson

解决方案


如果你不喜欢这些斜线,你应该首先解码内部 JSON 字符串:

$data = json_encode(array_map(function ($item) {
    return json_decode($item, true);
}, $data), JSON_FORCE_OBJECT);

推荐阅读