Php 检查数组中是否存在不允许的键?

Php 检查数组中是否存在不允许的键?,php,arrays,Php,Arrays,检查数组是否包含不允许的键的最佳方法是什么 $array = array("Apple" => 33, "Orange" => 22, "Dogs" => 77,); $allowed = array("Apple", "Orange"); 期望输出为: if (!something($array,$allowed)){echo 'Unallowed data';} 谢谢使用 使用 您可以使用array_diff()查找不允许的键: $keys = array_keys(

检查数组是否包含不允许的键的最佳方法是什么

$array = array("Apple" => 33, "Orange" => 22, "Dogs" => 77,);

$allowed = array("Apple", "Orange");
期望输出为:

if (!something($array,$allowed)){echo 'Unallowed data';}
谢谢使用

使用


您可以使用
array_diff()
查找不允许的键:

$keys = array_keys($array);
$notAllowed = array_diff($keys, $allowed);
var_dump($notAllowed); // "Dogs"
这里有一个函数可以执行此操作:

function something($array, $keys) {
    return ! array_diff(array_keys($array), $keys);
}
// Usage...
if ( ! something($array, $allowed)) {
    echo 'Unallowed data';
}

您可以使用
array_diff()
查找不允许的键:

$keys = array_keys($array);
$notAllowed = array_diff($keys, $allowed);
var_dump($notAllowed); // "Dogs"
这里有一个函数可以执行此操作:

function something($array, $keys) {
    return ! array_diff(array_keys($array), $keys);
}
// Usage...
if ( ! something($array, $allowed)) {
    echo 'Unallowed data';
}

如果可以对允许的值使用关联(映射)数组,则可以在O(1)中对允许的键执行搜索。使用当前的数据结构,搜索允许的映射将花费O(n)个时间


如果可以对允许的值使用关联(映射)数组,则可以在O(1)中对允许的键执行搜索。使用当前的数据结构,搜索允许的映射将花费O(n)个时间


使用
array\u diff\u键

$array = array("Apple" => 33, "Orange" => 22, "Dogs" => 77,);
$allowed = array("Apple", "Orange");
$allowed = array_flip($allowed);

$res = array_diff_key($array, $allowed);

print_r($res);

echo $allowedTxt = empty($res) ? "Allowed keys only" : "Not allowed keys";
$res
包含不允许的数据


假设不允许的键为“
狗”

使用
数组差异键

$array = array("Apple" => 33, "Orange" => 22, "Dogs" => 77,);
$allowed = array("Apple", "Orange");
$allowed = array_flip($allowed);

$res = array_diff_key($array, $allowed);

print_r($res);

echo $allowedTxt = empty($res) ? "Allowed keys only" : "Not allowed keys";
$res
包含不允许的数据

假定不允许的密钥为“