[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]
数据库存的是这样的数据 ['7','2'] 7代表产品id 2代表产品购买的数量
现在怎么 还原成 php 能使用的数组尼?
[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]
数据库存的是这样的数据 ['7','2'] 7代表产品id 2代表产品购买的数量
现在怎么 还原成 php 能使用的数组尼?
标准json需要双引号, 所以只要把单引号转成双引号, 再json_decode
$sqldata = "[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]";
$sqldata = str_replace('\'', '\"', $sqldata );
$data = json_decode($sqldata);
echo $data[0][1]; // >> 2
$str = "[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]";
var_dump(eval('return '.$str.';'));
试试
你没说具体格式,我就先采用下面这种格式了
$data = [['7','2'],['8','2'],['11','2'],['10','2'],['9','2']];
$products = array();
foreach ($data as $tmp) {
$products[] = array(
'id' => $tmp[0],
'total' => $tmp[1]
);
}
var_dump($products);
谢邀!
你这个就是数组,你直接循环好了:
$arr = [['7','2'],['8','2'],['11','2'],['11','2'],['11','2']];
var_dump($arr[0]);die;
这个数组等同于:
$arr = array(
array('7','2'),
array('8','2'),
array('11','2'),
array('11','2'),
array('11','2'),
);
var_dump($arr[0]);die;
你这么存进去的,再反解回来不就结了么。
$str = json_encode(array(
array(7, 2),
array(8, 2),
));
var_dump(json_decode($str));
$a = "[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']]";
// 如果数据格式是以上类型的话,直接去掉单引号,然后json_decode就可以了
$b = str_replace("'",'',$a);
$c = json_decode($b);
[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']] 这个本身就是数组;
从数据库取出来的时候是字符串,可以这样处理下:
$str = '$arr='."[['7','2'],['8','2'],['11','2'],['10','2'],['9','2']];"
eval($str);
var_dump($arr); //得到的$arr就是array
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答740 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答690 阅读✓ 已解决
属于偷鸡取巧的方法:当然,前提是你的数据都是完整的,不会有负数,NULL什么的
亲测成功