PHP根据数组的值组合2个数组

PHP根据数组的值组合2个数组,php,arrays,Php,Arrays,我有两个数组需要根据它们的值进行组合 它们看起来像这样: Array ( [8] => Array ( [AAA] => 1000, [AAA_2] => 451 ) [12] => Array ( [BBB] => 1000,

我有两个数组需要根据它们的值进行组合

它们看起来像这样:

   Array
    (
        [8] => Array
            (
                [AAA] => 1000,
                [AAA_2] => 451
            )

        [12] => Array
            (
                [BBB] => 1000,
                [BBB_2] => 3020
            )

        [14] => Array
            (
                [CCC] => 10,
                [CCC_2] => 5145
            )
    }
第一:

Array
(
    [8] => Array
        (
            [AAA] => 1000
        )

    [12] => Array
        (
            [BBB] => 1000
        )

    [14] => Array
        (
            [CCC] => 10
        )
}
第二:

Array
(
    [CCC] => 5145
    [AAA] => 451
    [BBB] => 3020
}
我想做的是检查两个数组,比较它们的AAA、BBB、CCC值,如果它们是相同的,则创建第三个数组,如下所示:

   Array
    (
        [8] => Array
            (
                [AAA] => 1000,
                [AAA_2] => 451
            )

        [12] => Array
            (
                [BBB] => 1000,
                [BBB_2] => 3020
            )

        [14] => Array
            (
                [CCC] => 10,
                [CCC_2] => 5145
            )
    }

关于如何做到这一点有什么想法吗?尝试使用array_combine()时运气不佳。

试试这个,希望它能起作用

$first=数组(8=>数组(“AAA”=>1000)、12=>数组(“BBB”=>1000)、14=>数组(“CCC”=>10))

$second=阵列(“CCC”=>5145,“AAA”=>451,“BBB”=>3020)

foreach($fKey=>fVal){

}


打印(第一)

我查看了您的代码,并尝试根据您的建议创建第三个数组,在我的网站上也可以。请参考以下代码并进行检查

$first = Array('8' => Array('AAA' => 1000),
              '12' => Array('BBB' => 1000),
              '14' => Array('CCC' => 10));
$second = Array('CCC' => 5145,
                'AAA' => 451,
                'BBB' => 3020);
$third = array();
foreach ($first as $key => $value) {
    foreach($value as $k => $v){
      if(array_key_exists($k,$second)){
          $third[$key] = array($k => $v, $k.'_2' => $second[$k]);
      }
    }
}
echo '<pre>';
print_r($third);
$first=Array('8'=>Array('AAA'=>1000),
'12'=>阵列('BBB'=>1000),
'14'=>数组('CCC'=>10));
$second=阵列('CCC'=>5145,
“AAA”=>451,
‘BBB’=>3020);
$third=array();
foreach($key=>$value){
foreach($k=>v的值){
如果(数组\键\存在($k,$s)){
$third[$key]=数组($k=>$v,$k.“u2'=>$second[$k]);
}
}
}
回声';
印刷费(三分之一);

此任务只需要一个foreach循环,而不是两个
$first
将作为输出数组

代码:()

输出:


那就试试别的吧。例如,Simple
foreach
。至少,您应该尝试自己编写代码。之后,如果你有问题,你可以张贴你已经尝试了一个明确的解释什么是不工作,并提供一个解决方案。我建议你读一个好的问题和答案。另外,请务必阅读。使用
循环
迭代您的数组,并创建一个新的输出数组。您所发表的每一篇文章(至少今天)的格式都很糟糕,没有任何解释。这些都是糟糕的答案。在继续乱扔垃圾之前,你需要改进你所有的答案,所以你需要更多的草率帖子。虽然会有人在你之后清理,但你需要承担一些责任,清理你自己的烂摊子。
$first=[8=>["AAA"=>1000],12=>["BBB"=>1000],14=>["CCC"=>10]];
$second=["CCC"=>5145,"AAA"=>451,"BBB"=>3020];
foreach($first as &$a){  // modify $first subarrays by reference
    $k=key($a);  // temporarily store first element's key
    if(isset($second[$k])){  // if key is found in $second
        $a["{$k}_2"]=$second[$k];  // add assoc element to $first
    }
}
var_export($first);  // display updated $first array
array (
  8 => 
  array (
    'AAA' => 1000,
    'AAA_2' => 451,
  ),
  12 => 
  array (
    'BBB' => 1000,
    'BBB_2' => 3020,
  ),
  14 => 
  array (
    'CCC' => 10,
    'CCC_2' => 5145,
  ),
)