Php 如何通过每个多维数组中的某些键来比较两个多维数组?
我有两个相同结构的多维数组 像这样:Php 如何通过每个多维数组中的某些键来比较两个多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有两个相同结构的多维数组 像这样: array(2) { [0] => array(9) { 'id' => string(5) "44994" 'ersatzteil_id' => string(3) "120" 'lang' => string(6) "name2_tag2" 'title' => string(12) "Seitentüren" 'alias' =>
array(2) {
[0] =>
array(9) {
'id' =>
string(5) "44994"
'ersatzteil_id' =>
string(3) "120"
'lang' =>
string(6) "name2_tag2"
'title' =>
string(12) "Seitentüren"
'alias' =>
string(12) "seitentueren"
'content' =>
string(1610) "LOREM ISPUM BLALABLBL"
'on_main' =>
string(1) "0"
'disabled' =>
string(1) "1"
'short_text' =>
NULL
}
[1] =>
array(9) {
'id' =>
string(5) "44996"
'ersatzteil_id' =>
string(3) "122"
'lang' =>
string(6) "name1_tag1"
'title' =>
string(7) "Spoiler"
'alias' =>
string(7) "spoiler"
'content' =>
string(1513) "SOME OTHER RANDOM TEXT"
'on_main' =>
string(1) "0"
'disabled' =>
string(1) "0"
'short_text' =>
NULL
}
}
我需要做的是比较第一个数组和第二个数组。
我必须通过键ersatzteil_id
和content
对它们进行比较,我发现它们有相同的内容,我需要将第一个数组中的元素存储到另一个新数组中,这在以前是不存在的
例如,我需要这样的东西,但效率更高:
if(array1[20]['ersatzteil_id'] == array2[145]['ersatzteil_id']
&& array1[20]['content'] == array2[145]['content']){
array3 = array1[20];
}
请尝试以下代码:-
$result = [];
foreach($array1 as $arr1){
foreach($array2 as $arr2){
if(($arr1['id'] == $arr2['id']) && ($arr1['ersatzteil_id'] == $arr2['ersatzteil_id'])){
$result[] = $arr1;
}
}
}
echo '<pre>'; print_r($result);
$result=[];
foreach($array1作为$arr1){
外汇($array2为$arr2){
如果($arr1['id']=$arr2['id'])和($arr1['ersatzteil_id']=$arr2['ersatzteil_id'])){
$result[]=$arr1;
}
}
}
回声';打印(结果);
尝试以下代码:-
$result = [];
foreach($array1 as $arr1){
foreach($array2 as $arr2){
if(($arr1['id'] == $arr2['id']) && ($arr1['ersatzteil_id'] == $arr2['ersatzteil_id'])){
$result[] = $arr1;
}
}
}
echo '<pre>'; print_r($result);
$result=[];
foreach($array1作为$arr1){
外汇($array2为$arr2){
如果($arr1['id']=$arr2['id'])和($arr1['ersatzteil_id']=$arr2['ersatzteil_id'])){
$result[]=$arr1;
}
}
}
回声';打印(结果);
看看or。你为什么认为你的代码不够高效?看看or。你为什么认为你的代码不够高效?