Json_encode数组多维


Json_encode Array Multidimensional

我有一个多维数组,它是字符串和int值的组合像这个

Array ( [0] => Array ( [0] => 2,2 ) [1] => Array ( [0] => 2,59 ) )

我需要让这个阵列变得像这个

[['2',   2],['2',       59]]

我使用json_encode,但它返回

[["2,2"],["2,59"]]

我正在使用这个数组进行图表

我从http://php.net/manual/en/function.json-encode.php但json_ecode列表中没有人能像那样返回

有人能帮我吗?thx

,你能再帮我一次吗

    $data = new stdClass(); 
    $data->name = 'SD';
    $data->data = $totalSD;
    $data2 = new stdClass(); 
    $data2->name = 'SMP';
    $data2->data = $totalSMP;
    $list = array();
    array_push($list, $data);
    array_push($list, $data2);

我有这样的阵列

$a =[{"name":"SD","data":[0,0,0,0,0,0,0,0,0,0,0,0,0,17,2]},{"name":"SMP","data":[0,‌​0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]; 

我需要改变阵列,使其变成这样的

$a =[{name:'SD',data:[0,0,0,0,0,0,0,0,0,0,0,0,0,17,2]},{name:'SMP',data:[0,0,0,0,0,‌​0,0,0,0,0,0,0,0,0,0]}];

使用foreach()循环并在,分隔符上分解字符串是可行的。

以下代码使用您在上面提供的确切阵列(基于结构):

foreach($array as $key => &$item) {
    foreach($item as $k => $data) {
        $item = explode(',', $data[0]);
    }
}

哪个返回:

[["2","2"],["2","59"]]

示例


如果您需要第一个value作为字符串,第二个作为int,那么以下内容就足够了:

foreach($a as $key => &$item) {
    foreach($item as $k => $data) {
        list($string, $int) = explode(',', $data[0]);
        $item = array(strval($string), (int) $int);
    }
}

它利用strval()将第一个值强制转换为字符串,并通过PHP中的(int)松散类型将第二个值强制转换器为int

哪个返回:

[["2", 2],["2", 59]]

示例


快速笔记

我在foreach中使用了by reference来修改原始数组。因此,基本上,您将获取数据,运行foreach循环以根据需要对其进行修改,然后对其进行编码

ARRAY = Get.ARRAY
FOREACH ( ARRAY AS KEY => &VAL) {
    FOREACH (VAL AS KEY => VALUE) {
        LIST(FIRST_ITEM, LAST_ITEM) = EXPLODE(',', VALUE);
        VALUE = ARRAY ( strval(FIRST_ITEM), (int) LAST_ITEM );
    }
}
ECHO json_encode(ARRAY);