2017-04-10 5 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

2つのキーでレコードを比較する方法は? –

+0

@TyTusどういう意味ですか? – Peter

+0

あなたのソリューションでは、配列を "id"でマージしますが、配列を2つの値 "id"と "code"でマージしたい場合はどうしますか?もちろん、2番目の配列が "code" –

関連する問題