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,
),
)