PHP,MYSQL,FOREACH检查值是否全部相同

时间:2015-11-12 03:28:09

标签: php mysql arrays foreach

示例:

Mysql - table_data

  dataid   dataname    datastatus
    1        joel          1
    1        joelle        2
    1        joe           3
    1        joela         4
    1        joella        5

PHP

 $names = array('joel','joelle','joe','joela');
 foreach($names as $name)
 {
    $qcheck = $this->db->query("SELECT * FROM table_data WHERE dataname=".$name."");
     //Do checking here
 }

我怎么知道joel,joelle,joe和joela datastatus是否都相同且不相同?

我如何知道该示例的输出..输出应该为false,因为所有状态都不相同,如果所有状态都相同,我怎么知道?

希望有人能提前帮助我...

2 个答案:

答案 0 :(得分:4)

更简单的方法是使用array_unique()。如果结果数组只有一个元素,则它们都是相同的。

$sample_array = array('Joe','Joe','Joe','Joe');
if (count(array_unique($sample_array)) === 1) {
  echo 'all the same';
}
else {
  echo 'not all the same';
}

输出

all the same

Demo

$arrays = [
    ['Joe','Joe','Joe','Joe'],
    ['Joe','Joe','Joe','John']
];
foreach ($arrays as $array) {
  if (count(array_unique($array)) === 1) {
    echo 'all the same';
  }
  else {
    echo 'not all the same';
  }
  echo "\n";
}

输出

all the same
not all the same

Demo

答案 1 :(得分:0)

$sample_array = array('Joe','Joe','Joe','Joe');
$temp = $sample_array[0];
$same = true;

for($i = 1; $i < count($sample_array); $i++) {
    if ($sample_array[$i] != $temp) {
        $same = false;
        break;
    }
}

if ($same) {
    echo 'All same';
} else {
    echo 'Not same';
}

结果:

All same