Я сейчас борюсь с объединением этих двух массивов. Может кто-нибудь мне поможет, что использовать?
Array
(
[1] => Array
(
[0] => 1-1
[1] => 1-2
[2] => 1-1
[3] => 1-2
[4] => 1-1
)
[3] => Array
(
[0] => 3-3
[1] => 3-3
[2] => 3-4
[3] => 3-4
[4] => 3-3
)
)
Array[1] key [0] => 1-1 needs to combine with
Array[3] key [0] => 3-3
Array[1] key [1] => 1-2 needs to combine with
Array[3] key [1] => 3-3
Результат будет: 1-1,3-3 и 1-2,3-3.
Обратите внимание, что ключи из первого массива [1] и [3] могут быть динамическими.
Я сделал это:
print_r(array_merge_recursive($optionWithValue[1], $optionWithValue[3]));
Но теперь у меня жестко запрограммированы 1 и 3, которые могут измениться, и в итоге я получил:
Array
(
[0] => 1-1
[1] => 1-2
[2] => 1-1
[3] => 1-2
[4] => 1-1
[5] => 3-3
[6] => 3-3
[7] => 3-4
[8] => 3-4
[9] => 3-3
)
Так что это тоже не то, что мне нужно
1-1,3-3, как в "1-1,3-3", или массив, содержащий и то, и другое? В любом случае, поделитесь своими попытками.
Я добавил пример в свой основной пост






Если ключи массивов в массиве совпадают, вы можете использовать array_reduce:
$arrays = [
[
"1-1",
"1-2",
"1-1",
"1-2",
"1-1",
],
[
"3-3",
"3-3",
"3-4",
"3-4",
"3-3",
],
];
$first = array_shift($arrays);
$res = array_reduce($arrays, function($carry, $item){
foreach($item as $key => $value) {
$carry[$key] = $carry[$key] . "," . $value;
}
return $carry;
}, $first);
print_r($res);
Результат
Array
(
[0] => 1-1,3-3
[1] => 1-2,3-3
[2] => 1-1,3-4
[3] => 1-2,3-4
[4] => 1-1,3-3
)
Спасибо, это именно то, что мне нужно, сразу протестировал, работает: D
Я не уверен, что понимаю, вы пытаетесь иметь только уникальные значения, а затем объединить 2? где твой код слияния?