如何在php中将json字符串转换为数组?

时间:2016-02-08 12:00:53

标签: php json

我有一个json格式,并希望将其转换为我的自定义格式。请帮助我使用PHP进行此转换。请帮帮我,我该如何构建上面提到的JSON数组格式。这是我的格式:

 [{"label":"Food & Drinks","data":"2"},{"label":"Lifestyle","data":"1"}]

想要这种格式的结果:

[["Food & Drinks", 2],["Lifestyle", 1]]

4 个答案:

答案 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)

解决方案是:

所以你的代码应该是这样的:

// 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)));