将多维php数组转换为JSON对象数组

时间:2012-07-19 10:16:56

标签: php jquery arrays json multidimensional-array

我需要在php中创建一个多维数组,并希望在jQuery脚本中将其用作JSON对象数组;

jQuery脚本中所需的输出应如下所示:

data = [
        { Month:'April', Comms:1000, Fees:200, Gains: 200},
        { Month:'May',   Comms:1200, Fees:300, Gains: 300}
        ]   

目前我的php数组生成如下:

    $data1[] = array(
        'Month' => 'April',
        'Comms' => 1000,
        'Fees'  => 200,
        'Gains' => 200      
    );      
    $data2[] = array(
        'Month' => 'May',
        'Comms' => 1200,
        'Fees'  => 300,
        'Gains' => 300      
    );

    echo json_encode($data);

我的问题是如何将data1和data2组合到json_encode php函数中的数据数组中,这将产生所需的jQuery JSON对象数组?

我确实拥有不同数组字段的值,并且可以以不同的方式创建data1和data2,因此数据是灵活的,我可以以任何其他方式将它们组合在一起,这将产生将在其中输出它们的数据数组。需要JSON格式。

任何帮助都将受到高度赞赏,我已经看到有关此主题的问题,但没有一个能解决我所面临的问题。

6 个答案:

答案 0 :(得分:2)

简单地:

echo json_encode($data1 + $data2);

请注意,您还可以使用+合并数组。

答案 1 :(得分:1)

尝试:

echo json_encode(array_merge($data1, $data2));

答案 2 :(得分:1)

写:

echo json_encode($data1 + $data2);

答案 3 :(得分:1)

您需要将两个阵列合并到一个新的阵列数组中。有关详细信息,请参阅manual

$data = array_merge($data1, $data2);
echo json_encode($data)

或更简单地使用+运算符:

echo json_encode($data1 + $data2)

答案 4 :(得分:0)

只是用户

echo json_encode($data1 + $data2);

答案 5 :(得分:0)

您应该通过使用groupBy months从数据库中提取数据来创建另一个数组,并将数据存储在其他数组中。

$array = array();  
foreach ($data as $element) {
    $array[$element['month']][] = [ 'comms' => $element['comms'], 'fees' => $element['fees'], 'gains' => $element['gains']
}