我有一個數組可以包含任意數量的值,其中一些可能會重複。如何檢查兩個特定值是否只出現在數組中?
實施例:1,2,2,5,7,3
如何可以寫在PHP一個測試,檢查是否包含在數組中的值只有1或2?
所以1,2,2,1,1,1會返回true。
同時1,2,3,1,2,1將返回false。
我有一個數組可以包含任意數量的值,其中一些可能會重複。如何檢查兩個特定值是否只出現在數組中?
實施例:1,2,2,5,7,3
如何可以寫在PHP一個測試,檢查是否包含在數組中的值只有1或2?
所以1,2,2,1,1,1會返回true。
同時1,2,3,1,2,1將返回false。
這似乎就好了工作:
function checkArray($a)
{
return (bool)!count(array_diff($a, array(1,2)));
}
,如果只是1秒和2S或假,如果不是
function return_1_or_2($array){
foreach($array as $a){
$c = $a-1;
if($c>1){
$flag = true;
break;
}
}
if($flag){
return false;
}else{
return true;
}
}
請這給一個嘗試...你可以進一步優化這個....但是這只是一個例子...
function array_contains_ones_and_twos_only(&$array){
foreach ($array as $x)
if ($x !== 1 && $x !== 2)
return false;
return true;
}
function checkarray($array) {
foreach($array as $a) {
if ($a != 1 && $a != 2)
return false;
}
return true;
}
這ANS它會返回true看起來很酷,但根據http://stackoverflow.com/questions/2473989/list-of-big-o-for-php-functions,array_diff的複雜度爲O(2 * n)。 – linepogl 2011-04-26 12:45:50
一個有效的評論,但我懷疑,除非數組很大,否則這對於運行MySQL查詢等的比較時間來說顯得微不足道,該頁面可能也會這樣做 – 2011-04-26 12:50:21