PHP按值合并数组,放入表最佳结构?

PHP按值合并数组,放入表最佳结构?,php,arrays,Php,Arrays,我有以下一系列结果: Array ( // 1st big array of results [0] => Array ( [0] => Array ( [customer] => John [shop_name] => shop1

我有以下一系列结果:

 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
                  )

          )

  )
在每个大的结果数组中,每个客户的
店铺名称
店铺地址
都有唯一对

我想做什么

我想把第一个大数组中的每个
客户
放在一个
中,但它的
店铺名称
店铺地址
分别放在一个
中,如下所示:

当然,对第二大阵列重复这个过程

我是否有最好的数组结构来执行此操作?

或者我应该将每个
客户
放在自己的数组中:

// Give each 'customer' its own array

foreach ($array[0] as $result) {
   $array_by_customer[$result['customer']][] = $result;
}
但正如您所看到的,我只能对
数组[0]
-第一大结果数组执行此操作


我认为您的做法很好:为每位客户制作一个阵列

我建议您对数组中的所有结果都这样做,就这样

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

然后,您的$arrays\u by\u客户将包含两个大阵列:一个用于初始大阵列。

我的回答有点简短。。。我认为您的做法很好:为每个客户制作一个阵列。这样,如果您想格式化单独的表,您可以为每个初始大数组填充一个$array\u by_customer。但是我如何将每个
$array\u by_customer
放入其初始大数组中?如果需要,只需将初始数组保留为这样即可。使用中间数组仅用于演示目的。也许我想让它比我脑海中的实际情况更复杂,但我不明白。我需要
John
Mark
放在一张单独的表格中,而
Cathy
Maria
放在另一张表格中。