我想合并具有相同ID的对象。
我使用php:
从mysql获取javascript对象作为字符串$sql="SELECT plaka,il,SUM(hasta_say) AS Hasta_Say FROM ADSM GROUP BY plaka,il ORDER BY Hasta_Say ";
///COLUMN CHARTS
$result=$baglanti->query($sql);
$ilEventChart="";
while ($query=$result->fetch(PDO::FETCH_ASSOC)) {
$color=random_color();
$ilEventChart.='
columnChartData.TR'.$query['plaka'].' = [
{
"il": "'.$query['il'].'",
"hasta_sayisi":'.$query['Hasta_Say'].',
"color": "'.$color.'"
}];
';
}
所以我打印到$ilEventChart
php变量到javascript区域。
此javascript对象创建后就像这样。但是递归' plaka'导致具有不同属性的递归对象。
这里的对象:
columnChartData.TR78 = [
{
"il": "KARABÜK",
"hasta_sayisi":66148,
"color": "b2147e"
}];
columnChartData.TR78 = [
{
"il": "ÇANAKKALE",
"hasta_sayisi":66246,
"color": "9a720a"
}];
我想将这些对象合并为一个对象。所需的输出如下:
columnChartData.TR78 = [
{
"il": "KARABÜK",
"hasta_sayisi":66148,
"color": "b2147e"
},
{
"il": "ÇANAKKALE",
"hasta_sayisi":66246,
"color": "9a720a"
}];
我们如何使用javascript执行此操作?
由于
答案 0 :(得分:0)
经过长时间的工作,我找到了解决方案。使用PHP数组可以实现解决方案。
以下是解决方案:
birim
MultiDimensional Array以使用javascript
ID(普拉卡)。我们使用while循环从MySQL获取数据并推送每个数据
数据到birim
数组
所以我们创建了一个多维数组,其id号为wich
key。例如,如果我们用print_r
检查数组:
echo'
'; print_r($birim[6]);
我们在数组中看到了6
值的id:
Array
(
[0] => {
"birim": "ANKARA GÖLBAÅI AÄIZ VE DÄ°Å SAÄLIÄI MERKEZÄ°",
"hasta_sayisi":70518,
"color": "e817c0"
},
[1] => {
"birim": "ANKARA SÄ°NCAN AÄIZ VE DÄ°Å SAÄLIÄI MERKEZÄ°",
"hasta_sayisi":77868,
"color": "ac31aa"
},
[2] => {
"birim": "ANKARA BALGAT AÄIZ VE DÄ°Å SAÄLIÄI MERKEZÄ°",
"hasta_sayisi":97564,
"color": "609724"
},
[3] => {
"birim": "ANKARA KEÇİÖREN OSMANLI AÄIZ VE DÄ°Å SAÄLIÄI MERKEZÄ°",
"hasta_sayisi":97773,
"color": "62f1a0"
},
[4] => {
"birim": "ANKARA MAMAK AÄIZ VE DÄ°Å SAÄLIÄI MERKEZÄ°",
"hasta_sayisi":126806,
"color": "2c7498"
},
[5] => {
"birim": "ANKARA TOPRAKLIK AÄIZ VE DÄ°Å SAÄLIÄI MERKEZÄ°",
"hasta_sayisi":126854,
"color": "23a203"
},
[6] => {
"birim": "ANKARA TEPEBAÅI AÄIZ VE DÄ°Å SAÄLIÄI HASTANESÄ°",
"hasta_sayisi":200623,
"color": "735aa6"
},
[7] => {
"birim": "ANKARA 75.YIL AÄIZ VE DÄ°Å SAÄLIÄI HASTANESÄ°",
"hasta_sayisi":260057,
"color": "4d8cd1"
},
)
foreach loop
打印到temp
我们将在javascript代码中使用的变量。以下是完整代码:
$sql="SELECT plaka,birim,SUM(hasta_say) AS Hasta_Say FROM ADSM GROUP BY birim ORDER BY Hasta_Say ";
$result=$baglanti->query($sql);
$birimEventChart="";
$birim=array();
while ($query=$result->fetch(PDO::FETCH_ASSOC)) {
$color=random_color();
$birim[$query['plaka']][]='{
"birim": "'.$query['birim'].'",
"hasta_sayisi":'.$query['Hasta_Say'].',
"color": "'.$color.'"
},';
}
$sql="SELECT DISTINCT plaka FROM ADSM";
$result=$baglanti->query($sql);
$temp="";
while ($query=$result->fetch(PDO::FETCH_ASSOC)) {
foreach ($birim[$query['plaka']] as $p) {
$temp.=$p;
}
$birimEventChart.='hastaneChartData.TR'.$query['plaka'].' = ['.$temp.'];';
$temp="";
}