1

我有一个数组:

$my_array = array(1 => 'has value', 2 =>'', 3 => '');

我想运行一个 if 语句来检查所有键是否都有值,如果所有键都没有任何值,则返回 false

喜欢:

if(any_key_has_value($my_array)){
    //run my query
}
4

4 回答 4

3

如果您将“具有价值”定义为“价值== true”:

if (count(array_filter($array)) == count($array)) {
    echo 'All elements have values';
}
于 2013-10-17T06:04:24.060 回答
1
function hasValue($v) {
    return strval($v) != '';
}    
$res_array = array_filter($my_array, 'hasValue');
// any key has value
$any_key_has_value = 0 < sizeof($res_array);
// all keys have values
$all_keys_have_values = sizeof($my_array) == sizeof($res_array);
于 2013-10-17T05:57:04.947 回答
1
$my_array = array(1 => 'has value', 2 =>'', 3 => '');

试试这个

if (array_filter($my_array)) {
    // here  first value  `has value` 
}else{
 // all values are empty 
}
于 2013-10-17T06:06:58.547 回答
1

尝试这个:

<?php
        $array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null);

        if (!array_filter($array)) {

            echo "All keys have null values";
        }
        else
        {
               // do something
        }
        ?>

-

于 2013-10-17T07:14:00.407 回答