Как узнать, имеет ли массив одинаковое значение во всех данных?


Как я могу узнать, если мой массив:

$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

у кого-нибудь есть идея какого-либо метода или что я мог бы сделать?

 1
Author: Dev. Joel, 2017-07-26

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));
 4
Author: Dev. Joel, 2017-07-26 18:14:16

Эта функция может служить вам:

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)

Источник: Check if all values in array are the same

 1
Author: A. Cedano, 2017-07-26 18:34:44