按值合并数组PHP
问题描述:
我遇到问题,我想按值合并数组。下面是一个入门例如,条目阵列有100条记录按值合并数组PHP
Array ( [0] => Array ( [id] => 1 [code] => dfrr5tv5t5vt5 [status] => online ) [1] => Array ( [id] => 2 [code] => e32e3e2e2323e23e [status] => online ) [2] => Array ( [id] => 1 [desc] => Some_description ) [3] => Array ( [id] => 2 [desc] => Some_description_2 ) .... )
我谨[ID]
Array ( [0] => Array ( [id] => 1 [code] => dfrr5tv5t5vt5 [status] => online [desc] => Some_description ) [1] => Array ( [id] => 2 [code] => e32e3e2e2323e23e [status] => online [desc] => Some_description_2 ) .... )
答
使用assocative阵列打通合并数组以下结果。使用$row["id"]
作为关联指数。
$result = [];
foreach ($arr as $row) {
$result[$row["id"]] = isset($result[$row["id"]]) ? array_merge($result[$row["id"]], $row) : $row;
}
$result = array_values($result); // optional, this removes associative keys
+0
如何通过两个键比较记录? –
+0
@TyTus你是什么意思? – Peter
+0
在你的解决方案中,你是通过“id”合并数组,但如果我想通过两个值“id”和“code”合并数组该怎么办。当然,如果第二个数组是“代码” –
你是如何获得这些值的?因为我相信你可以在这样的数组之前做到这一点。例如,您可以将数组的关键字设置为ID,并以这种方式轻松地添加到该数组中,因为您可以添加到该特定ID。 – Nytrix
PHP函数['array_reduce()'](http://php.net/manual/en/function.array-reduce.php)是你需要的工具。 – axiac
不太可能,因为数据是以随机顺序下载的 –