我处于一个非常具体的情况,我有一个索引数组$name_array
,它有 0 索引但没有值,如下所示;
Array
(
[0] =>
)
我想将此数组视为空,我在isset($name_array)
和!empty($name_array)
中检查了它,但此数组正在传递这两个条件。我不知道应该应用什么条件来检测这个数组是否有这些值然后它是空的?
例如;
if(/*some condition*/($name_array))
{
echo 'I am not empty';
}
else
{
echo 'I am empty';
}
答案 0 :(得分:7)
您可以使用array_filter
:
if (!array_filter($name_array)) {
// empty or has "empty" values
}
默认array_filter
过滤掉任何"空"值为空字符串,null
或false
。
答案 1 :(得分:2)
!empty
足以检查您的第一个数组索引是否有效: -
if(!empty($array[0])){
// $array[0] has value
}
如果您不知道第一个索引键的多维数组,
if(!empty($array[key($array)])){
echo $array[key($array)];
}
empty - 如果var存在并且具有非空的非零值,则返回FALSE。否则返回TRUE。
以下内容被认为是空的:
“”(空字符串)
0(0为整数)
0.0(0作为浮点数)
“0”(0作为字符串)
NULL
FALSE
array()(一个空数组)
$变种; (声明的变量,但没有值)
答案 2 :(得分:0)
没有内置功能来检查
你可以创建自己的:)这里是一个例子
function is_array_empty($name_array) {
foreach($name_array as $elm) {
if(!empty($elm)) return FALSE;
}
return TRUE;
}
答案 3 :(得分:0)
您是否只是想检查第一个元素是否为空?如果是的话:
if ( ! current($name_array)) {
// first element in $name_array is niether false, null, 0 or an empty string
}
如果您需要检查更具体的案例,只需将感叹号更改为您需要检查的内容。
答案 4 :(得分:0)
function is_array_empty($name_array) {
$arrSize=sizeof($name_array);
$emptElements=0;
foreach($name_array as $elm) {
if(empty($elm)){
$emptElements++;
}
}
if($emptElements==$arrSize){
return TRUE;
}else{
return FALSE;
}
}