根据索引数组值过滤关联数组键
许多程序员都会遇到基于特定条件有选择地从关联数组中过滤掉键的挑战值存储在索引数组中。在 PHP 中,array_filter() 回调函数仅提供对数组值的访问,而忽略了键匹配功能。
考虑以下场景,其中 $my_array 包含键值对:
$my_array = ["foo" => 1, "hello" => "world"];
$allowed 是一个带有允许的键的简单索引数组:
$allowed = ["foo", "bar"];
目标是修改 $my_array 使得它只包含 $allowed 中也存在的键。所需的输出是:
$my_array = ["foo" => 1];
要实现此目的,我们可以利用 array_intersect_key() 和 array_flip() 函数:
var_dump(array_intersect_key($my_array, array_flip($allowed)));
解释:
通过组合这些函数,我们可以根据值有选择地从关联数组中删除键在索引数组中,无需手动迭代键并比较它们。
以上是如何在 PHP 中根据索引数组值过滤关联数组键?的详细内容。更多信息请关注PHP中文网其他相关文章!