簡體   English   中英

如何檢查多維數組是否僅包含空值?

[英]How to check if a multi-dimensional array only contains empty values?

我環顧四周,無法完全找到答案,所以我想知道是否包含這樣的數組。

$array['foo']['bar'][1] = '';
$array['foo']['bar'][2] = '';
$array['foo']['bar'][3] = '';
$array['foo']['bar'][4] = '';

如何檢查所有值是否為空? 我嘗試執行以下操作:

if (empty($array['foo']['bar'])) {
    // Array empty
}

但是正如預期的那樣,這沒有用。

我怎樣才能做到這一點?

如果要檢查是否所有值都已填充,則可以使用

 if(call_user_func_array("isset", $array['foo']['bar']))

對於您想做的事情,盡管可以使用閉包的數組減少

 if(array_reduce($array, function(&$res, $a){if ($a) $res = true;}))

請注意,這僅適用於php 5.3+

$array['foo']['bar']不為空,因為它實際上是array(1=>'',2=>'',3=>'',4=>'')

您需要對其執行一個foreach循環,以檢查是否確實全部為空。

$arr_empty = true;
foreach ($array['foo']['bar'] as $arr) {
    if (!empty($arr)) {
        $arr_empty = false;
    }
}
//$arr_empty is now true or false based on $array['foo']['bar']

一個簡短的選擇是:

if (empty(implode($array['foo']['bar']))) {
  // is empty
}

請注意,某些單個值可能被視為空。 參見empty()

暫無
暫無

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

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