我有一个json格式,并希望将其转换为我的自定义格式。请帮助我使用PHP进行此转换。请帮帮我,我该如何构建上面提到的JSON数组格式。这是我的格式:
[{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}]
想要这种格式的结果:
[["Food & Drinks", 2],["Lifestyle", 1]]
答案 0 :(得分:1)
尝试以下解决方案:
$json = '[{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}]';
$json_array = json_decode($json, true);
$new_array = array();
foreach($json_array as $arr){
$new_array[] = array_values($arr);
}
print_r($new_array);
echo json_encode($new_array);
输出:
Array
(
[0] => Array
(
[0] => Food & Drinks
[1] => 2
)
[1] => Array
(
[0] => Lifestyle
[1] => 1
)
)
[["Food & Drinks","2"],["Lifestyle","1"]]
有关详细信息,请PHP: json_decode
答案 1 :(得分:1)
解决方案是:
json_decode()
函数解码json字符串array_map()
函数将回调函数(在本例中为array_values()
)应用于给定数组的每个元素所以你的代码应该是这样的:
// suppose $json is your json string
$arr = json_decode($json, true);
$newArr = array_map('array_values', $arr);
// display $newArr array
var_dump($newArr);
此处$newArr
是您想要的数组。
答案 2 :(得分:0)
$array = json_decode($json, true);
$result = array();
for($i=0; $i<sizeof($array); $i++){
$result[] = array_values($array[$i]);
}
$ result将是您的预期结果
答案 3 :(得分:0)
将'data'值转换为int
的版本$json = '[{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}]';
$output = json_encode(array_map(function($v) {
$v['data'] = (int) $v['data'];
return array_values($v);
}, json_decode($json, true)));
// ["Food & Drinks",2],["Lifestyle",1]]
echo $output;
如果不需要int
$output = json_encode(array_map('array_values', json_decode($json, true)));