PHP将json中的数字值去除掉双引号(字符型转整型)
假设我们现在有如下一个二维数组:
Array
(
[0] => Array
(
[id] => 0
[name] => 小红
[age] => 17
)
[1] => Array
(
[id] => 1
[name] => 小红
[age] => 17
)
[2] => Array
(
[id] => 2
[name] => 小红
[age] => 17
)
)
使用json_encode()
函数将其转换为json数据如下:
[{"id":"0","name":"\u5c0f\u7ea2","age":"17"},
{"id":"1","name":"\u5c0f\u7ea2","age":"17"},
{"id":"2","name":"\u5c0f\u7ea2","age":"17"}]
我们想要去掉id的值的双引号,也就是将id值由字符串换为数字,有一个方法:
//JSON_NUMERIC_CHECK -> 将所有数字字符串编码成数字(numbers)
$data_json = json_encode($data, JSON_NUMERIC_CHECK);
结果为:
[{"id":0,"name":"\u5c0f\u7ea2","age":17},
{"id":1,"name":"\u5c0f\u7ea2","age":17},
{"id":2,"name":"\u5c0f\u7ea2","age":17}]
此时我们发现不光是id的值转为了整型,age的值也转为了整型;
如果只需要将id转换(或某个字段)转换其他字段不受影响可以:
foreach($data as $k => $v){
$v['id'] = (int)$v['id'];
// 这里注释的为自己可以增加新的字段
// $v['age'] = (int)$v['age'];
$data_arr[] = $v;
}
$data_json = json_encode($data_arr);
结果为:
[{"id":0,"name":"\u5c0f\u7ea2","age":"17"},
{"id":1,"name":"\u5c0f\u7ea2","age":"17"},
{"id":2,"name":"\u5c0f\u7ea2","age":"17"}]