1, "keyB" => 2, "keyC" => -6ren">
gpt4 book ai didi

php array_intersect 关联和索引数组

转载 作者:可可西里 更新时间:2023-11-01 00:56:05 24 4
gpt4 key购买 nike

如何在不使用 multiple isset(...) 的情况下检查数组中是否设置了键

我想到了这样的事情:

$arr1 = [
"keyA" => 1,
"keyB" => 2,
"keyC" => 3
];

$arr2 = ['keyB', 'keyD'];

$anyExists = empty(array_intersect($arr1, $arr2));

如果 $arr2 的任何项目是 $arr1 的键,这应该评估为真。显然是行不通的。但是有没有不使用循环的类似好的解决方案?

最佳答案

所以你想从第一个数组中获取键作为值,因为它检查值而不是键,你希望 !empty() 返回 true 如果它是NOT empty and false 如果它是空的:

$anyExists = !empty(array_intersect(array_keys($arr1), $arr2));

您可以使用 array_intersect_key(),但是您需要翻转第二个数组以获取值作为键:

$anyExists = !empty(array_intersect_key($arr1, array_flip($arr2)));

或者将您的数组定义为:

$arr2 = ['keyB' => true, 'keyD' => true];

关于php array_intersect 关联和索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com