如何检查两个特定值是否是数组中出现的唯一值?

时间:2011-04-26 10:35:47

标签: php arrays testing

我有一个可以包含任意数量值的数组,其中一些可能会重复出现。

示例:1,2,2,5,7,3

如何在PHP中编写测试,检查数组中包含的唯一值是1还是2?

所以1,2,2,1,1,1会返回true。

同时1,2,3,1,2,1将返回false。

4 个答案:

答案 0 :(得分:5)

这似乎工作正常:

function checkArray($a)
{
    return (bool)!count(array_diff($a, array(1,2)));
}

如果它只是1s和2s则返回true,否则返回false

答案 1 :(得分:0)

    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;
    }
    }

请试一试......你可以进一步优化这个......但这只是一个例子...

答案 2 :(得分:0)

function array_contains_ones_and_twos_only( &$array ){
  foreach ($array as $x)
    if ($x !== 1 && $x !== 2)
      return false;
  return true;
}

答案 3 :(得分:0)

function checkarray($array) {
  foreach($array as $a) {
    if ($a != 1 && $a != 2)
      return false;
  }
  return true;
}