ProfiPHPProfiPHP
Категория: Полезное в PHP

Проверить наличие повторяющихся элементов массива

Иногда необходимо узнать количество одинаковых элементов массива. Это бывает нужно для разных ситуаций. Например, вы добавляете в публикацию теги, и необходимо проверить, не ввел ли пользователь случайно 2 одинаковых тега для одной публикации?

Для реализации данной задачи можно использовать несколько вариантов. Например, использовать функцию Array_count_values.
$array_keywords = array( 'FIRST', 'SECOND', 'THIRD', 'FIRST', 'FIRST', 'SECOND' );
$array_cv = array_count_values( $array_keywords );
foreach ( $array_cv as $value ) {
if ( trim( $value ) > 1 ) {
$duplicate_values = true;
break;
}
}
if ( @$duplicate_values ) {
...
}
В данном примере мы перебираем обработанный функцией Array_count_values массив, в котором подсчитано количество всех значений массива. Если значения элемента массива больше 1, тогда массив имеет дублирующиеся значения.

Можно реализовать еще проще, с помощью функции Array_unique:
$array_keywords = array( 'FIRST', 'SECOND', 'THIRD', 'FIRST', 'SECOND', 'FIFTH' );
$array_cu = array_unique( $array_keywords );

if ( count( $array_keywords ) > count( $array_cu ) ) {
$duplicate_values = true;
}
Здесь мы сравниваем исходящий массив с массивом, обработанным функцией Array_unique, которая убирает повторяющиеся значения из массива. Если обработанный массив имеет меньше элементов, значит также присутствуют дублирующие значения.

Добавить комментарий

Имя:
Текст комментария: