Удаление дублей в массиве

85
17 апреля 2021, 20:10

есть первый массив:

Array
(
[овощи] => Array
    (
        [0] => огурец
    )
[фрукты] => Array
    (
        [0] => апельсин
        [1] => мандарин
    )
[рыба] => Array
    (
        [0] => налим
        [1] => сазан
        [2] => щука
        [3] => плотва
    )
)

и второй массив:

Array
(
[овощи] => Array
    (
        [0] => помидор
    )
[фрукты] => Array
    (
        [0] => апельсин
        [1] => мандарин
        [2] => черешня
    )
)

объединяю массивы следующим образом:

$basket = array_merge_recursive($first, $second);

в результате получаю:

Array
(
[овощи] => Array
    (
        [0] => огурец
        [1] => помидор
    )
[фрукты] => Array
    (
        [0] => апельсин
        [1] => мандарин
        [2] => апельсин
        [3] => мандарин
        [4] => черешня
    )
[рыба] => Array
    (
        [0] => налим
        [1] => сазан
        [2] => щука
        [3] => плотва
    )
)

Собственно вопрос: как удалит повторяющиеся значения? в данном примере это [2] => апельсин и [3] => мандарин.

Answer 1

Используйте array_unique() и array_values():

$first = Array
(
    'овощи' => Array
    (
        'огурец',
    ),
    'фрукты' => Array
    (
        'апельсин',
        'мандарин'
    ),
    'рыба' => Array
    (
        'налим',
        'сазан',
        'щука',
        'плотва'
    )
);
$second = Array
(
    'овощи' => Array
    (
        'помидор'
    ),
    'фрукты' => Array
    (
        'апельсин',
        'мандарин',
        'черешня'
    )
);
$basket = array_merge_recursive($first, $second);
$basket = array_map('array_values', array_map('array_unique', $basket));
var_dump($basket);

Результат:

array (size=3)
  'овощи' => 
    array (size=2)
      0 => string 'огурец' (length=12)
      1 => string 'помидор' (length=14)
  'фрукты' => 
    array (size=3)
      0 => string 'апельсин' (length=16)
      1 => string 'мандарин' (length=16)
      2 => string 'черешня' (length=14)
  'рыба' => 
    array (size=4)
      0 => string 'налим' (length=10)
      1 => string 'сазан' (length=10)
      2 => string 'щука' (length=8)
      3 => string 'плотва' (length=12)
READ ALSO
написать функцию роутер php

написать функцию роутер php

на процедурке без ООП и классов можно сделать роутер?

90
php страница/калькулятор с css в HTML

php страница/калькулятор с css в HTML

Можно ли перенести калькулятор из indexphp вместе со стилями в index

98
Деплой при пуше в определенную ветку GitlabCI

Деплой при пуше в определенную ветку GitlabCI

Возможно-ли в GitlabCI настроить сборку проекта на определенном сервере при пуше в определенную ветку? Те

102
Запуск minecraft 1.7.10 Forge через bat

Запуск minecraft 1.7.10 Forge через bat

Собрался делать кастомный лаунчер для игры Minecraft, но она написана на javaС java я толком не знаком

102