Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过每个多维数组中的某些键来比较两个多维数组?_Php_Arrays_Multidimensional Array - Fatal编程技术网

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。你为什么认为你的代码不够高效?