2016-04-02 5 views
2

私は、結果の次の配列を持っている:PHPは値によって配列をマージし、テーブルに最適な構造体を入れますか?

Array 
    (
     // 1st big array of results 
     [0] => Array 
      (
       [0] => Array 
        (
         [customer] => John 
         [shop_name] => shop1 
         [shop_address] => address1 
       ) 

       [1] => Array 
        (
         [customer] => John 
         [shop_name] => shop2 
         [shop_address] => address2 
       ) 

       [2] => Array 
        (
         [customer] => Mark 
         [shop_name] => shop1 
         [shop_address] => address1 
       ) 

     ) 

     // 2nd big array of results 
     [1] => Array 
      (
       [0] => Array 
        (
         [customer] => Cathy 
         [shop_name] => shop3 
         [shop_address] => address3 
       ) 

       [1] => Array 
        (
         [customer] => Cathy 
         [shop_name] => shop4 
         [shop_address] => address4 
       ) 

       [2] => Array 
        (
         [customer] => Maria 
         [shop_name] => shop3 
         [shop_address] => address3 
       ) 

     ) 

) 

結果の各大きさの配列で、各顧客のためのユニークなペアshop_nameshop_addressがあります。

私は

をしたいと思います私はこのように、個々の<td></td>に1 <th></th>が、そのshop_nameshop_addressに各customer第一の大きな配列のを入れたいのですが:

What I'd like to do - Table IMG

そしてもちろん、第2の大きな配列のプロセスを繰り返します。

これを行うには、配列の構造が最適ですか?

// Give each 'customer' its own array 

foreach ($array[0] as $result) { 
    $array_by_customer[$result['customer']][] = $result; 
} 

をしかし、あなたが見ることができるように私はそれだけのためにarray[0]行うことができます - 結果第一の大きな配列を:

それとも私は、独自のアレイ内の各customerを置く必要があります。

Array by customer - PHP Fiddle

答えて

0

私はあなたが良い方法にあったと思う:顧客ごとの配列を作ります。

これをすべての結果に対してarrayで行うことをお勧めします。それだけです!

foreach ($array as $big_array_key => $results) { 
    foreach ($results as $result) { 
     $arrays_by_customer[$big_array_key][$result['customer']][] = $result; 
    } 
} 

$ array_by_customerには、2つの大きな配列が含まれます。つまり、最初の大きな配列に対してそれぞれ1つずつです。

+0

私の答えは少し短かった...私はあなたが良い方法でいたと思う:顧客ごとの配列を作る。別々のテーブルをフォーマットする場合は、最初の大きな配列につき1つの$ array_by_customerを書き込むことができます。 – Baptiste

+0

しかし、それぞれの '$ array_by_customer'を初期の大きな配列にどのように置くのですか? – JohnRios

+0

必要に応じて、最初の配列をそのままこのままにしておきます。中間配列はプレゼンテーション目的でのみ使用してください。 – Baptiste