[英]How can merge objects if objects id is same?
我想合并具有相同 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 做到这一点?
谢谢
经过长时间的工作,我找到了解决方案。使用 PHP 数组可以解决这个问题。
这是解决方案:
birim
数组以使用 javascript id(plaka)。 在我们使用 while 循环从 MySQL 获取数据并将每个数据推送到birim
数组之后
所以我们创建了一个带有 id 号的多维数组,它有自己的键。例如,如果我们使用print_r
检查数组:
回声'
';\n打印_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
数组值打印到我们将在 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=""; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.