我有一个数组如下:
$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>";
}
我觉得我在这里错过了这种意志。
答案 0 :(得分:2)
有一些PHP函数可以做一些不同的事情:
isset
- 确定变量是否设置且不是NULL
示例:
如果将$ list_array设置为NULL以外的值, if(isset($list_array)){//do something}
将执行某些操作。
请参阅: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.
}
is_null
- 通过返回true或false来标识变量是否为NULL。仅当变量为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;}
答案 1 :(得分:1)
空应该起作用:
if (empty($list_array))
echo "Array is empty";
else
echo "Array is not empty";
您的循环不起作用,因为PHP数组基于零,您应该从零开始并在$z < $arr_length
答案 2 :(得分:1)
我在您的代码中发现了两个错误:
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>";
}
您可以通过简单的复制粘贴尝试here。