[英]php array merge by key value pair
我有一个这样的数组,它是通过在循环中合并sql结果数组而创建的
array(175) {
[0]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-09" ["ACR"]=> string(4) "4024" }
[1]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-10" ["ACR"]=> string(4) "4024" }
[2]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-11" ["ACR"]=> string(4) "4024" }
[7]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-09" ["ATC"]=> string(4) "4182" }
[8]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-10" ["ATC"]=> string(4) "4188" }
[9]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-11" ["ATC"]=> string(4) "4188" }
[14]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-09" ["BEL"]=> string(4) "1155" }
[15]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-10" ["BEL"]=> string(4) "1155" }
[16]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-11" ["BEL"]=> string(4) "1155" }
}
并需要根据时间戳值进行合并
array(175) {
[0]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-09" ["ACR"]=> string(4) "4024" ["ATC"]=> string(4) "4182" ["BEL"]=> string(4) "1155" }
[1]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-10" ["ACR"]=> string(4) "4024" ["ATC"]=> string(4) "4188" ["BEL"]=> string(4) "1155" }
[2]=> array(2) { ["TIMESTAMP"]=> string(10) "2015-10-11" ["ACR"]=> string(4) "4024" ["ATC"]=> string(4) "4188" ["BEL"]=> string(4) "1155"}
}
第二个数组是预期的输出
任何想法如何? 我已经尝试了多种方法来对数组进行分组,但是并没有做我需要的事情。 谢谢
好的,我终于找到了这个解决方案
$merged = array();
foreach ($result as $item)
{
$date = $item['TIMESTAMP'];
if (!isset($merged[$date]))
{
$merged[$date] = array();
}
$merged[$date] = array_merge($merged[$date], $item);
}
然后返回其中key为时间戳值的数组。 由于我需要这些数据用于morris.js折线图,因此我不得不使用shuffle,现在我有了可以正常工作的数组
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.