根据索引数组中的键过滤关联数组
在 PHP 中,array_filter() 提供了一种基于索引数组中的键过滤关联数组的便捷方法关于他们的价值观。然而,该函数只考虑值,让程序员寻找一种根据一组允许的值来过滤键的方法。这个问题解决了这个挑战。
给定一个关联数组 ($my_array) 和一个允许键的索引数组 ($allowed),任务是从 $my_array 中删除 $allowed 中不存在的所有键。所需的输出是一个 $my_array,仅包含在 $allowed 中找到键的键值对。
解决方案:
答案建议使用两个数组操作函数:
结合这两个函数,您可以将关联数组过滤为如下所示:
$filtered_array = array_intersect_key($my_array, array_flip($allowed));
这里, array_flip($allowed) 创建一个新数组,其中 $allowed 中的值成为键,而键成为值。 array_intersect_key($my_array, ...) 然后将 $my_array 与翻转后的数组进行比较,返回一个仅包含允许的键作为键及其关联值的数组。
示例:
使用提供的示例:
$my_array = array("foo" => 1, "hello" => "world"); $allowed = array("foo", "bar");
生成的 $filtered_array 将是:
array("foo" => 1);
以上是如何根据索引数组中的键在 PHP 中过滤关联数组?的详细内容。更多信息请关注PHP中文网其他相关文章!