2017-04-10 159 views
-1

我遇到问题,我想按值合并数组。下面是一个入门例如,条目阵列有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 
     ) 

    .... 
) 

+0

你是如何获得这些值的?因为我相信你可以在这样的数组之前做到这一点。例如,您可以将数组的关键字设置为ID,并以这种方式轻松地添加到该数组中,因为您可以添加到该特定ID。 – Nytrix

+0

PHP函数['array_reduce()'](http://php.net/manual/en/function.array-reduce.php)是你需要的工具。 – axiac

+0

不太可能,因为数据是以随机顺序下载的 –

回答

0

使用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”合并数组该怎么办。当然,如果第二个数组是“代码” –