Php检查数组是否已确定值 $numbers=array('1'=>'1','2'=>'2');
我有一个从1到12的数字数组 可能存在不在1到12范围内的值。只允许使用1到12之间的数字 PHP中有什么方法可以做到这一点吗?可能会有帮助- 首先检查是否有任何不合适的值-Php检查数组是否已确定值 $numbers=array('1'=>'1','2'=>'2');,php,Php,我有一个从1到12的数字数组 可能存在不在1到12范围内的值。只允许使用1到12之间的数字 PHP中有什么方法可以做到这一点吗?可能会有帮助- 首先检查是否有任何不合适的值- $check = array_filter($numbers, function($v) { return $v < 1 || $v > 12; }); // check values present if (!empty($check)) { // show error } $check=a
$check = array_filter($numbers, function($v) {
return $v < 1 || $v > 12;
});
// check values present
if (!empty($check)) {
// show error
}
$check=array\u filter($number,function($v){
返回$v<1 | |$v>12;
});
//检查当前值
如果(!空($check)){
//显示错误
}
我不确定要过滤什么(键或值或两者)。因此,我编写了此代码,以便您可以选择所需的代码:
我使用这个数组来测试代码:
$numbers= array('1' => '1', '2' => '2', "3"=>34, "34" => "7", 5=>8);
此“允许”条件指的是键或此关联数组的值?它指的是关联数组的值。
<?php
$numbers= array('1' => '1', '2' => '2', "3"=>34, "34" => "7", 5=>8);
# filter key
function filter_number_keys($input_key)
{
if(intval($input_key) <= 12 && intval($input_key) >= 1){
return true;
}else{
return false;
}
}
# filter value
function filter_number_values($input_value, $input_key)
{
if(intval($input_value) <= 12 && intval($input_value) >= 1){
return true;
}else{
return false;
}
}
# filter both
function filter_number_both($input_value, $input_key)
{
if(intval($input_value) <= 12 && intval($input_value) >= 1
&& intval($input_key) <= 12 && intval($input_key) >= 1 ){
return true;
}else{
return false;
}
}
# filter values
echo "Filter values : " . PHP_EOL;
print_r(array_filter($numbers, 'filter_number_values', ARRAY_FILTER_USE_BOTH));
# filter keys
echo "Filter keys : " . PHP_EOL;
print_r(array_filter($numbers, 'filter_number_keys', ARRAY_FILTER_USE_KEY));
# fitler both
echo "Filter both : " . PHP_EOL;
print_r(array_filter($numbers, 'filter_number_both', ARRAY_FILTER_USE_BOTH));
?>
Filter values :
Array
(
[1] => 1
[2] => 2
[34] => 7
[5] => 8
)
Filter keys :
Array
(
[1] => 1
[2] => 2
[3] => 34
[5] => 8
)
Filter both :
Array
(
[1] => 1
[2] => 2
[5] => 8
)