簡體   English   中英

如何檢查多維關聯數組是否為空

[英]How to Check if Multi-Dimensional Associative Array is Empty

我有一個數組如下:

$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的值, 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.
}

請參閱: http//uk3.php.net/empty


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;}

空應該工作:

if (empty($list_array))
    echo "Array is empty";
else
    echo "Array is not empty";

您的循環不起作用,因為PHP數組是從零開始的,您應該從零開始並在$z < $arr_length繼續

我在您的代碼中發現了兩個錯誤:

  1. 嘗試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>";
}

您可以在這里嘗試,只需簡單地復制並粘貼即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM