Intereting Posts

Проверить, существует ли переменная в массиве более одного раза?

Я хочу сделать оператор if / else в PHP, который опирается на элемент в массиве, существующий более одного раза или нет. Можете ли вы использовать count in in_array? сделать что-то вроде:

if (count(in_array($itemno_array))) > 1 { EXECUTE CODE }

Related of "Проверить, существует ли переменная в массиве более одного раза?"

Пусть $ item – элемент, частота которого вы проверяете в массиве, $ array – массив, в котором вы ищете.

РЕШЕНИЕ 1:

 $array_count = array_count_values($array); if (array_key_exists($item, $array_count) && ($array_count["$item"] > 1)) { /* Execute code */ } 

array_count_values ​​() возвращает массив, используя значения входного массива в качестве ключей и их частоту во вводе как значения ( http://php.net/manual/en/function.array-count-values.php )

РЕШЕНИЕ 2:

 if (count(array_keys($array, $item)) > 1) { /* Execute code */ } 

Проверьте это http://www.php.net/manual/en/function.array-keys.php – «Если указана опция поиска_значения, то возвращаются только ключи для этого значения»

Посмотрите на array_count_values() .

http://www.php.net/manual/en/function.array-keys.php

in_array возвращает bool, поэтому вы не можете считать это. array_keys, однако, возвращает массив всех ключей для элемента в массиве, поэтому проверка длины этого результата даст вам, существует ли он более одного раза или нет.

Возможно, я неправильно понял ваш вопрос, но, возможно, это то, что вы сделали:

 if ( count($in_array) > count(array_unique($in_array)) ) { EXECUTE CODE }