2012-07-19 154 views
0

我需要在php中创建一个多维数组,并且希望在jQuery脚本中使用它作为JSON数组对象;将多维php数组转换为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); 

我的问题是如何将数据1和数据2组合成json_encode php函数中的数组数组,它​​将生成所需的jQuery JSON数组对象?

我确实有不同的数组字段的值,并可以用不同的方式创建data1和data2,所以数据是灵活的,我可以用任何其他方式将它们组合起来,这将产生数据数组,所需的JSON格式。

任何帮助将受到高度赞赏,我已经看到关于这个问题的问题,但没有哪个解决我面临的问题。

回答

1

你会想这两个数组合并成阵列的新数组。有关更多信息,请参见manual

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

,或者更简单地使用+操作:

echo json_encode($data1 + $data2) 
+0

谢谢,事实上,我曾尝试过$ data1 + $ data2,但我一直只得到第一行。我的情况比我原来的问题稍微复杂一些。我在Joomla应用程序的模型中创建了这些数组,它将组合数组返回到控制器,我使用json_encode。我试图在模型中使用json_encode,并将结果返回给控制器,但使用+运算符只显示第一行,但array_merge完成了这个任务。 – jmarais 2012-07-19 10:41:24

+0

最有可能是Joomla的限制。我很高兴你能工作。 – 2012-07-19 10:44:14

1

尝试:

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

简单:

echo json_encode($data1 + $data2); 

请注意,您还可以使用+合并阵列。

+0

谢谢,这应该工作,但出于某种原因或其他我只能得到第一行。可能是因为在Joomla模型和控制器上的使用,但我会牢记这一点。 – jmarais 2012-07-19 10:45:17

1

写:

echo json_encode($data1 + $data2); 
0

只是用户

echo json_encode($data1 + $data2); 
0

你应该使用GROUPBY月再拍阵列通过提取数据库中的数据和存储其他数组中的数据。

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