在PHP中比较数组的键

在PHP中比较数组的键,php,arrays,Php,Arrays,这是我的第一个数组 $array1 = [ 'A' => 'Apple', 'B' => 'Ball', 'C' => 'Cat', 'E' => 'Eagle', 'F' => 'Fan' ]; 第二阵列 $array2 = [ 'A' => 'apple is a fruit', 'B' => 'ball is used to p

这是我的第一个数组

$array1 = [
        'A' => 'Apple',
        'B' => 'Ball',
        'C' => 'Cat',
        'E' => 'Eagle',
        'F' => 'Fan'
    ];
第二阵列

$array2 = [
        'A' => 'apple is a fruit',
        'B' => 'ball is used to play',
        'C' => 'cat is an animal',
        'D' => '',
        'E' => 'eagle is a bird',
        'F' => ''
    ];
电流输出:

Array
(
    [Apple] => apple is a fruit
    [Ball] => ball is used to play
    [Cat] => cat is an animal
    [Eagle] => eagle is a bird
    [Fan] => 
)
预期产出:

Array
    (
        [Apple] => apple is a fruit
        [Ball] => ball is used to play
        [Cat] => cat is an animal
        [Eagle] => eagle is a bird
    )
我试过这样做

$arr4 = [];
if ($arr3 = array_intersect_key($array1, $array2)) {
    foreach ($arr3 as $k => $v) {
        $arr4[$v] = $array2[$k];
    }
}

print_r($arr4);
请帮忙,提前谢谢! 如果你看到电流输出,我得到的结果是风扇没有价值。我需要得到的结果值与预期输出值类似,您可以试试这个

$array3 = [];
foreach ($array1 as $key => $value) {
    if ($array2[$key] != '') {
        $array3[$value] = $array2[$key];
    }
}

echo '<pre>';
print_r($array3);
$array3=[];
foreach($array1作为$key=>$value){
如果($array2[$key]!=''){
$array3[$value]=$array2[$key];
}
}
回声';
打印(数组3);
您可以试试这个

$array3 = [];
foreach ($array1 as $key => $value) {
    if ($array2[$key] != '') {
        $array3[$value] = $array2[$key];
    }
}

echo '<pre>';
print_r($array3);
$array3=[];
foreach($array1作为$key=>$value){
如果($array2[$key]!=''){
$array3[$value]=$array2[$key];
}
}
回声';
打印(数组3);
试试这个:

Array
(
    [Apple] => apple is a fruit
    [Ball] => ball is used to play
    [Cat] => cat is an animal
    [Eagle] => eagle is a bird
)
试试这个:

Array
(
    [Apple] => apple is a fruit
    [Ball] => ball is used to play
    [Cat] => cat is an animal
    [Eagle] => eagle is a bird
)
您可以使用函数删除空结果:

if ($arr3 = array_intersect_key($array1, $array2)) {
        foreach ($arr3 as $k => $v) {
           if($array2[$k]){
             $arr4[$v] = $array2[$k];
           }
        }
    }
您可以使用函数删除空结果:

if ($arr3 = array_intersect_key($array1, $array2)) {
        foreach ($arr3 as $k => $v) {
           if($array2[$k]){
             $arr4[$v] = $array2[$k];
           }
        }
    }

添加
IF
内部
foreach


添加
IF
内部
foreach


具有
array\u filter
array\u intersect\u key
array\u combine
功能的简短解决方案:

输出:


具有
array\u filter
array\u intersect\u key
array\u combine
功能的简短解决方案:

输出:


所有代码都可以使用
array\u remove($arr4)
从数组中删除空值;所有代码都可以使用
array\u remove($arr4)
从数组中删除空值;
$array2 = array_filter($array2);

var_dump(array_combine(array_intersect_key($array1,$array2), $array2));
array(4) {
  ["Apple"]=>
  string(16) "apple is a fruit"
  ["Ball"]=>
  string(20) "ball is used to play"
  ["Cat"]=>
  string(16) "cat is an animal"
  ["Eagle"]=>
  string(15) "eagle is a bird"
}