2016-05-05 17 views
-2

pls配列の値を組み合わせる助けてください。 私は同じ配列を持っています: 私の場合、私はキーのように顧客名を保存する必要があります。私は顧客がキーのような名前保存する必要があります私の場合は配列内の同じ値を組み合わせる

Array 
(
    [Test Name] => Array 
     (
      [0] => Array 
       (
        [name] => 
        banana 
        [id] => 
        45002 
        [quantity] => 
        30 // summ quantity but unique name and id 
       ) 
      [1] => Array 
       (
        [name] => 
        apple 
        [id] => 
        23402 
        [qua] => 
        1 
       ) 

      [2] => Array 
       (
        [name] => 
        cherry 
        [id] => 
        40017 
        [qua] => 
        7 
       ) 

:このような何かを得るための方法

Array 
(
    [Test Name] => Array 
     (
      [0] => Array 
       (
        [name] => 
        banana 
        [id] => 
        45002 
        [quantity] => 
        10 
       ) 
      [1] => Array 
       (
        [name] => 
       banana 
        [id] => 
       45002 
        [quantity] => 
        20 
       ) 
      [3] => Array 
       (
        [name] => 
        apple 
        [id] => 
        23402 
        [qua] => 
        1 
       ) 

      [5] => Array 
       (
        [name] => 
        cherry 
        [id] => 
        40017 
        [qua] => 
        7 
       ) 

。 これをテーブルにアップロードします。

+0

[こちら](http://stackoverflow.com/questions/19299166/php-array-find-duplicates-sum-them-up-delete-duplicates)を参照してください。 – fusion3k

+0

こんにちは。異なる分野または同じものとして量と量が必要ですか? – sujivasagam

答えて

0

あなたはそれを達成するためにarray_maparray_reduceを使用することができます。

$results = array_map(function ($result) { 
    return array_reduce($result, function ($carry, $item) { 
     if (isset($carry[$item['id']])) { 
      $carry[$item['id']]['quantity'] += $item['quantity']; 
     } else { 
      $carry[$item['id']] = $item; 
     } 
     return $carry; 
    }, array()); 
}, $results); 

ドキュメントから:

array_map()は、それぞれにコールバック関数を適用した後、配列1のすべての要素を含む配列を返します。 1。

array_reduce()は、アレイの要素を1つの値に減らすために、配列の要素に反復的にコールバック関数を適用します。

我々のケースでarray_reduce関数に与えられたコールバックはidによってユニークな項目を含む最終的な配列を返します。

+0

その助けてください、それはどのように動作するのか説明しますか?)TY –

関連する問題