我有一个数组如下:
$list_array = array();
$list_array[] = array (
'id' => 1,
'name' => 'Sean',
'codename' => 'Maverick'
);
$list_array[] = array (
'id' => 2,
'name' => 'Matt',
'codename' => 'Diesel'
);
$list_array[] = array (
'id' => 3,
'name' => 'Bonnie',
'codename' => 'Princess'
);
我想弄清楚如何检查它是否为空。我看了看网站,并尝试了一些事情,但它不工作。以下是我尝试过的方法。
Attempt 1:
if (empty($list_array)
echo "Array is empty";
Attempt 2:
$arr_empty = true;
$arr_length = count($list_array);
echo "Length: " . $arr_length . "<br>";
for ($z=1; $z<=$arr_length; $z++)
{
$arr_length2 = count($list_array[$z]);
echo $z . " Length2: " . $arr_length2 . "<br>";
if (empty($list_array[$z]))
echo $z . " Is Empty<br>";
}
这里有几个PHP函数,它们做的事情都略有不同:
isset
-确定是否设置了变量且不为NULL
例子:
if(isset($list_array)){//do something}
将在$list_array被设置为NULL以外的值时做一些事情。
见:http://uk3.php.net/manual/en/function.isset.php
empty
—判断变量是否为空。如果变量或数组为空字符串、false、array()、NULL、0或未设置的变量,则此函数返回true
。我更喜欢使用empty
函数。
例子:
if(!empty($list_array)){
//do something with array here, such as a foreach or while loop.
}
见:http://uk3.php.net/empty
is_null
-通过返回true或false来标识变量是否为NULL。只有当变量为空时,它才返回true。is_null()
与isset()
相反,唯一的区别是isset()
也可以应用于未知变量,而is_null()
只能用于已声明的变量。
例子:if(is_null($var)){ //do something }
见:http://uk3.php.net/manual/en/function.is-null.php
让我们继续使用empty
:
if(empty($list_array)){ $msg = "Array is empty!"; }
if(!isset($msg)){echo $msg;}
应该是空的:
if (empty($list_array))
echo "Array is empty";
else
echo "Array is not empty";
你的循环不起作用,因为PHP数组是从零开始的,你应该从零开始,直到$z < $arr_length
我在你的代码中发现了两个错误:
- 在第一次尝试中括号没有关闭
- 在for循环中,您从1开始而不是从0开始(因此,您正在考虑数组将是
array(1=>..., 2=>..., 3=>...)
之类的东西,而实际上是array(0=>..., 1=>..., 2=>...)
那么,这是你的代码,修正:
$list_array = array();
$list_array[] = array (
'id' => 1,
'name' => 'Sean',
'codename' => 'Maverick'
);
$list_array[] = array (
'id' => 2,
'name' => 'Matt',
'codename' => 'Diesel'
);
$list_array[] = array (
'id' => 3,
'name' => 'Bonnie',
'codename' => 'Princess'
);
//Attempt 1:
if (empty($list_array))
echo "Array is empty";
//Attempt 2:
$arr_empty = true;
$arr_length = count($list_array);
echo "Length: " . $arr_length . "<br>";
for ($z=0; $z<$arr_length; $z++)
{
$arr_length2 = count($list_array[$z]);
echo $z . " Length2: " . $arr_length2 . "<br>";
if (empty($list_array[$z]))
echo $z . " Is Empty<br>";
}
您可以在这里尝试,使用简单的复制和粘贴