2011-12-29 87 views
0

我只包含布爾數組:PHP檢查數組?

$l = array(0=>true,2=>false,3=>true,4=>true,5=>true); 

我想要實現這個僞代碼:

If at least one element of $l is false: 
    echo 'Can not do this'; 
else: 
    echo 'Can do this'; 
+0

它應該是_if的至少一種元素..._? in_array: – 2011-12-29 08:48:51

+0

:http://php.net/manual/en/function.in-array.php – 2011-12-29 09:09:40

回答

0

假設你有一個拼寫錯誤和正確的形式是

如果數組$ L至少一個元素是假

然後你只需要迭代這個數組並在數組中的第一個false值上失敗。我不會給你答案,因爲它是作業,解決方案非常簡單。

查看PHP手冊中的if聲明以及foreach聲明。這是解決您的問題所需的全部。

1

你可以嘗試使用array_reduce功能。像這樣的東西:錯誤的元素。

array_reduce($data, function($v, $w){ if ($w == false) { $v++; } return $v; return 1; } , 0); 

回調函數計數數組中的假元素數。 但我與array_search或in_array意思之前的變體是更好的。儘量不要使用php的循環,而使用標準的php函數,因爲它使用本地c代碼,所以速度要快得多。

5
$missing_permission = array_search(false, $l); 
if($missing_permission !== false) { 
    echo 'No way!'; 
} else { 
    echo 'OK!'; 
} 
0

循環遍歷數組。如果遇到錯誤元素,請停止並打印「無法執行此操作」。如果遇到數組的末尾,請停止並打印「可以做到這一點」。

4

您可以簡單地使用php的in_array函數,該函數檢查數組中的給定值。

$l = array(0=> true, 2 => false, 3 => true, 4 => true, 5 => true); 

if (in_array(FALSE, $l)) { 
    echo "can not do this"; 
} else { 
    echo "can do this"; 
} 

實施例:http://www.ideone.com/yv3Yf