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