Array_unique
Glossary overview

Array_unique

Функция array_unique() в PHP используется для удаления повторяющихся значений из массива, сохраняя при этом их порядок.

Синтаксис:

array_unique(array $array, int $flags = SORT_STRING): array
  • $array — это массив, из которого нужно удалить повторяющиеся значения.
  • $flags — необязательный параметр, который определяет способ сравнения значений. По умолчанию используется SORT_STRING. Другие возможные флаги:
    • SORT_REGULAR — сравнение значений по умолчанию (обычное сравнение).
    • SORT_NUMERIC — сравнение числовых значений.
    • SORT_STRING — сравнение строк (по умолчанию).
    • SORT_LOCALE_STRING — сравнение строк с учетом локали.

Пример 1: Удаление повторяющихся значений из массива

$array = [1, 2, 2, 3, 4, 4, 5];
$result = array_unique($array);

print_r($result);


// Вывод
Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

Пример 2: Использование флага SORT_NUMERIC для удаления повторяющихся чисел

$array = [1, 2, 2, 3, "3", 4, 4, 5];
$result = array_unique($array, SORT_NUMERIC);

print_r($result);

// Вывод
Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [5] => 4
    [7] => 5
)

Пример 3: Использование флага SORT_STRING для удаления повторяющихся строк

$array = ["apple", "banana", "apple", "orange", "banana"];
$result = array_unique($array, SORT_STRING);

print_r($result);

// Вывод
Array
(
    [0] => apple
    [1] => banana
    [3] => orange
)

Пример 4: Удаление повторяющихся значений с учетом регистров

$array = ["apple", "Apple", "banana", "banana", "Orange"];
$result = array_unique($array, SORT_REGULAR);

print_r($result);

// Вывод
Array
(
    [0] => apple
    [1] => Apple
    [2] => banana
    [4] => Orange
)

Мой пример

        $matching_terms = array();

        foreach ( $search_words as $word ) {
            if ( ! empty( $word ) ) {
                $terms = get_terms( array(
                    'taxonomy'   => $search_taxonomies,
                    'hide_empty' => false,
                    'search'     => $word,
                ) );

                if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
                    $matching_terms = array_merge( $matching_terms, $terms );
                }
            }
        }

        $matching_terms = array_unique( $matching_terms, SORT_REGULAR );