В PHP, как я могу удобно удалить элементы в массиве, ключи которого находятся в другом массиве?

У меня есть два массива:

$array = new Array('id'=>1, 'name'=>'Peter', 'sex'=>'male', 'age'=>25);

$excludes = new Array('sex', 'age');

Я хочу получить следующий результат:

$array = new Array('id'=>1, 'name'=>'Peter');

Элементы, ключи которых находятся в массиве $ exclude, удаляются.

Как мне этого добиться удобно?

1

Решение

Просто с array_diff_key а также array_flip функции:

// $arr is your initial array (besides, don't give `$array` name to arrays)
$result = array_diff_key($arr, array_flip($excludes));
print_r($result);

Выход:

Array
(
[id] => 1
[name] => Peter
)
4

Другие решения

function removeExcludesFromArray($input,$expludes) {
$newArray = array(); // Create a new empty array
foreach($array as $inputKey => $inputElement) { // loop your original array
if(!array_key_exists($inputKey,$excludes)) { // check if key exists
$newArray[$inputKey] = $inputElement; // add on demand
}
}

return $newArray; // return the result
}// Call the function
$array = removeExcludesFromArray($array,$excludes);
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector