找不到比较数组键的方法


Cant find a way to compare array keys

我有这两个数组

Array ONE
(
    [39] => Dude, Harry [10%]
    [36] => Occonell, Tim [90%]
)
Array TWO
(
    [1] => Person, Admin
    [2] => Snow, John
    [3] => Jane, Marry
    [14] => Kelchenko, Igory
    [18] => Bery, Grass
    [36] => Occonell, Tim
)

我试图从第二个数组中删除值,如果它的键等于第一个。所以我的数组应该是这样的:

Array TWO
(
    [1] => Person, Admin
    [2] => Snow, John
    [3] => Jane, Marry
    [14] => Kelchenko, Igory
    [18] => Bery, Grass
)

array_diff()的方向是正确的,但是你想用数组的键做一些事情,所以使用:array_diff_key(),例如

print_r(array_diff_key($array2, $array1));

例如:

$array2 = [
    1 => "a",
    2 => "b",
    3 => "c",
    4 => "d",
    5 => "e",
]; 
$array1 = [
    2 => "Don't want this key",
    4 => "Also don't want this one",
];

输出将是:

Array ( 
    1 => a
    3 => c
    5 => e
)

你可以这样做

foreach($arr_one as $key => $val){
    if(isset($array_2[$key]))    unset($array_2[$key]);
}