Как узнать, имеет ли массив одинаковое значение во всех данных?
Как я могу узнать, если мой массив:
$exampleArr4 = array("AÑO 2017","2017_01".$dieciciete01,"2017_02".$dieciciete02,
"2017_03".$dieciciete03,"2017_04".$dieciciete04,"2017_05".$dieciciete05 ,
"2017_06".$dieciciete06,"2017_07".$dieciciete07,"2017_08".$dieciciete08,
"2017_09".$dieciciete09,"2017_10".$dieciciete10);
содержит те же данные и вернуть мне true
хранится в переменной, и в противном случае, если не все равны вернуть false
и эти последние два значения (true или false), которые хранятся в переменной.
Дело в том, что в соответствии с этой переменной, содержащей это значение, я хочу сравнить его, чтобы я мог выполнитьif
у кого-нибудь есть идея какого-либо метода или что я мог бы сделать?
2 answers
Чтобы узнать, равны ли все элементы array
. вы можете сначала использовать функцию array_unique, чтобы удалить повторяющиеся значения из array
, а затем получить количество с count(), если это равно 1
, то все они равны, в противном случае они не будут.
$valores = array('0' => 'valor' , '1'=> 'valor');
$esigual = count(array_unique($valores))===1;
var_dump($esigual);
Да вы будете использовать эту часть кода несколько раз было бы лучше иметь функцию
function valoresIguales($array){
return count(array_unique($array))===1;
}
var_dump(valoresIguales($valores));
Эта функция может служить вам:
Código:
Ver Demo
<?php
$arrIgual = array("foo", "foo", "foo", "foo");
$arrDesIgual = array("foo", "foo", "foo", "bar");
var_dump(isHomogenous($arrIgual));
var_dump(isHomogenous($arrDesIgual));
function isHomogenous($arr) {
$firstValue = current($arr);
foreach ($arr as $val) {
if ($firstValue !== $val) {
return false;
}
}
return true;
}
?>
Resultado:
bool(true)
bool(false)