繁体   English   中英

是否有PHP函数将检查以确保在数组中设置了字段

[英]Is there a PHP function that will check to make sure fields are set in an array

php库是否具有检查所有必需字段是否设置在数组中的功能? 例如:

function required_fields($vals,$required_fields_names){
    for($i = 0; $i < count($required_fields_names); $i++){
        if(!array_key_exists($required_fields_names[$i],$vals)){
            return false
        }
    }
    return true;
}

已经有本机的PHP函数/方法可以做到这一点吗?

不,没有本机方法。

但是您可以改进该代码。

<?php 

function check_keys($keys,$array) {
    foreach ($keys as $key) {
        if(!array_key_exists($key, $array)) {
            return false;
        }
    }
    return true;
}

# Test Zone 

$a = array('a' => 1,
           'b' => 2,
           'c' => 3);

$b = ['a','b','c'];
$c = ['a','b'];
$d = ['a','b','d'];


echo (int) check_keys($b,$a).'</br>'; # 1
echo (int) check_keys($c,$a).'</br>'; # 1
echo (int) check_keys($d,$a).'</br>'; # 0
?>

array_difference是与此最接近的内置函数:

function required_fields($vals,$required_fields_names){
    $missing_fields = array_difference($required_fields_names, array_keys($vals));
    return empty($missing_fields);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM