根据键匹配过滤两个多维数组,但每个数组具有不同的结构 - 输出到新的合并数组

时间:2012-05-19 04:13:33

标签: php arrays multidimensional-array

我试图仅提取与特定字段匹配的数组项,然后我需要将两者合并为一个仅包含我需要的数据的数组。

我有两个数组,它们的结构如下所示。只有 product_count ,其中数组#1的CATEGORY_ID与数组#2的键匹配应该是输出。

数组#1: - 数组#2关键字段中不存在多个数组#1 CATEGORY_ID。

    0 => Array (4)
      0 => 3
      CATEGORY_ID => 10
      1 => 1
      product_count => 8
    1 => Array (4)
      0 => 4
      CATEGORY_ID => 111
      1 => 6
      product_count => 109
    ...

数组#2:

    10 => Category Name 1
    110 => Category Name 2
    8 =>  Category Name 3
    109 =>  Category Name 4
    111 =>  Category Name 5
    3 =>  Category Name 6
    132 =>  Category Name 7
   ...

最终输出看起来应该是这样的:,我可能会认为这一切都错了,所以我愿意接受任何建议。

    10 =>   [0] => Category Name 1
            [1] => 8 // product_count
    111 =>  [0] => Category Name 5
            [1] => 109 // product_count
    ...

我正在运行foreach()来提取每个类别的产品计数。正如您所看到的,我的两个数组通过数据反映了这一点。

1 个答案:

答案 0 :(得分:1)

你必须做一个foreach循环,我相信:

$new_array = array();
foreach($array1 as $part) {
    $new_array[$part["CATEGORY_ID"]] = array( $array2[$part["CATEGORY_ID"]], $part["product_count"] );
}

我想我得到了你想要的东西。我认为没有一个实际的PHP函数来做你想做的事情。