2016-02-26 84 views
0

我在一個非常特殊的情況下,我有一個索引數組$name_array,其中有索引但沒有值,如下所示;如何檢查數組是否有[0]索引但沒有值?

Array 
(
    [0] => 
) 

我要考慮這個數組作爲空,我已經檢查它在isset($name_array)!empty($name_array)但這種陣列通過兩個條件。我不知道我應該使用什麼條件來檢測這個數組是否具有這些類型的值,然後它是空的?

例如;

if(/*some condition*/($name_array)) 
{ 
    echo 'I am not empty'; 
} 
else 
{ 
    echo 'I am empty'; 
} 
+7

的可能的複製[如何檢查是否一個數組包含空元素?](http://stackoverflow.com/questions/6621683/how-to-check-if-an-array-contains-empty-元素) – Apb

+0

@Apb不,它不是上述問題的重複,兩個問題都完全不同。 –

+0

有很多與你的SO問題有關的鏈接。去谷歌上查詢。 – Apb

回答

6

您可以使用array_filter

if (!array_filter($name_array)) { 
    // empty or has "empty" values 
} 

默認情況下,array_filter會過濾掉任何「空」值,如空字符串,null o r false

+1

酷,完美的一個:) :) – devpro

+0

是的,我改變它爲 'if(array_filter($ name_array)){ echo'我不是空'; } else { echo'I am empty'; }' 按預期工作。 –

+0

@ksimka我很感激。 –

0

沒有內置函數來檢查
可以代替創建自己的:)這裏的例子

function is_array_empty($name_array) { 
    foreach($name_array as $elm) { 
     if(!empty($elm)) return FALSE; 
    } 
    return TRUE; 
} 
2

!empty足以檢查數組的第一個指數是否有效: -

if(!empty($array[0])){ 
// $array[0] has value 
} 

在多維數組,你不知道第一索引鍵的情況下,

if(!empty($array[key($array)])){ 
    echo $array[key($array)]; 
} 

empty - 如果var存在並且具有非空非零值,則返回FALSE。否則返回TRUE。

以下的事情被認爲是空的:

「」(空字符串)

0(0作爲整數)

0.0(0爲float)

「0」(0作爲字符串)

NULL

FALSE

陣列()(空數組)

$變種; (一個變量聲明,但沒有值)

+0

嗯,解決方案很好,但如果其他索引是空的??? – devpro

+0

@devpro:在問題中,OP已經定義了數組的索引[0]。所以我有這樣的建議:) –

+1

是的,多數民衆贊成在我說,解決方案是好的...不理想:) – devpro

0

你只是想檢查第一個元素是否爲空?如果是這樣:

if (! current($name_array)) { 
    // first element in $name_array is niether false, null, 0 or an empty string 
} 

,如果你需要檢查更具體的情況,只是改變了感嘆號到什麼是你需要檢查。

0
function is_array_empty($name_array) { 
    $arrSize=sizeof($name_array); 
    $emptElements=0; 
    foreach($name_array as $elm) { 
     if(empty($elm)){ 
      $emptElements++; 
     } 
    } 
    if($emptElements==$arrSize){ 
     return TRUE; 
    }else{ 
     return FALSE; 
    } 
} 
+0

太長...檢查@ ksimka的答案。 –

相關問題