如何查看“多维关联数组”是否为空



我有一个数组如下:

$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

我在你的代码中发现了两个错误:

  1. 在第一次尝试中括号没有关闭
  2. 在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>";
}

您可以在这里尝试,使用简单的复制和粘贴

相关内容

  • 没有找到相关文章