Объединение двух и более массивов в один массив по цифровым ключам без дубликатов ⇐ Php
-
Гость
Объединение двух и более массивов в один массив по цифровым ключам без дубликатов
У меня есть следующий сценарий, состоящий из массивов с числовыми ключами. Мне нужен массив, в котором хранятся все значения массивов, сгруппированные по числовому ключу и без дубликатов. Я не могу сделать их строками, поскольку они являются идентификаторами и должны оставаться числовыми.
Отправная точка:
Массив ( [77] => Массив ( [0] => Жирный сжатый [1] => Жирный сокращенный 2 [2] => Жирный сокращенный 3 ) ) Множество ( [77] => Массив ( [0] => Жирный сжатый ) [136] => Массив ( [0] => Обычный ) ) Множество ( [77] => Массив ( [0] => Сокращенный полужирный шрифт (1, 2, 3) ) [168] => Массив ( [0] => Обычный [1] => Жирный ) ) Ожидаемый результат:
Массив ( [77] => Массив ( [0] => Жирный сжатый [1] => Жирный сокращенный 2 [2] => Жирный сокращенный 3 [3] => Сокращенный полужирный шрифт (1,2,3) ) [136] => Массив ( [0] => Обычный ) [168] => Массив ( [0] => Обычный [1] => Жирный ) ) Пробовал array_merge и array_merge_recursive:
$megaArray = []; foreach($arrays as $key => $value) { если(array_key_exists($key, $arrays)){ $megaArray[$key] = array_merge_recursive($value); } } Что я получаю при использовании array_merge и array_merge_recursive:
Массив ( [77] => Массив ( [0] => Сокращенный полужирный шрифт (1, 2, 3) ) [136] => Массив ( [0] => Обычный ) [168] => Массив ( [0] => Обычный [1] => Жирный ) ) Похоже, что и array_merge, и array_merge_recursive хранят последнее значение для каждого ключа.
У меня есть следующий сценарий, состоящий из массивов с числовыми ключами. Мне нужен массив, в котором хранятся все значения массивов, сгруппированные по числовому ключу и без дубликатов. Я не могу сделать их строками, поскольку они являются идентификаторами и должны оставаться числовыми.
Отправная точка:
Массив ( [77] => Массив ( [0] => Жирный сжатый [1] => Жирный сокращенный 2 [2] => Жирный сокращенный 3 ) ) Множество ( [77] => Массив ( [0] => Жирный сжатый ) [136] => Массив ( [0] => Обычный ) ) Множество ( [77] => Массив ( [0] => Сокращенный полужирный шрифт (1, 2, 3) ) [168] => Массив ( [0] => Обычный [1] => Жирный ) ) Ожидаемый результат:
Массив ( [77] => Массив ( [0] => Жирный сжатый [1] => Жирный сокращенный 2 [2] => Жирный сокращенный 3 [3] => Сокращенный полужирный шрифт (1,2,3) ) [136] => Массив ( [0] => Обычный ) [168] => Массив ( [0] => Обычный [1] => Жирный ) ) Пробовал array_merge и array_merge_recursive:
$megaArray = []; foreach($arrays as $key => $value) { если(array_key_exists($key, $arrays)){ $megaArray[$key] = array_merge_recursive($value); } } Что я получаю при использовании array_merge и array_merge_recursive:
Массив ( [77] => Массив ( [0] => Сокращенный полужирный шрифт (1, 2, 3) ) [136] => Массив ( [0] => Обычный ) [168] => Массив ( [0] => Обычный [1] => Жирный ) ) Похоже, что и array_merge, и array_merge_recursive хранят последнее значение для каждого ключа.
Мобильная версия