К примеру есть 2 массива:
Первый:
$one = [
'key1' => [
0 => '1',
1 => '0',
],
'key2' => [
0 => '1',
1 => '0',
],
'key3' => [
0 => '1',
1 => '0',
]
];
Второй:
$thwo = [
'array1' => [
'key4' => [
'1',
'0'
],
'key5' => [
'1',
'0'
],
'key6' => [
'1',
'0'
]
]
];
В итоге, должно получиться так:
$total = [
'key1' => [
0 => '1',
1 => '0',
],
'key2' => [
0 => '1',
1 => '0',
],
'key3' => [
0 => '1',
1 => '0',
],
'key4' => [
0 => '1',
1 => '0',
],
'key5' => [
0 => '1',
1 => '0',
],
'key6' => [
0 => '1',
1 => '0',
]
];
Нужно учитывать, что могут быть разные массивы, разных вложенностей.
Не получается сделать рекурсию, никак не въеду как сделать.
Выручайте, кто, чем сможет.
Пришлось писать метод, который проверяет одномерный ли массив:
public final function one(array $array): bool {
$length = sizeof($array);
if (1 == $length) {
if (is_array(current($array))) {
return false;
} else {
return true;
}
}
$i = 0;
foreach ($array as $value) {
if (is_array($value)) {
break;
}
++$i;
}
return $i === $length;
}
И рекурсию:
private function recursive(array $array, $set) {
if ($array) {
foreach ($array as $key => $val) {
if (is_array($val)) {
if ($this->one($val)) {
self::$array[$key] = $val;
} else {
$this->recursive($val, $set);
}
}
}
}
}
Работает только на php 7 +
, внимательнее.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Получаю файл с удаленного сервера с текстом, который отображается, как просто набор символов - Êðèâîíîñû;Ðàéîí Ñòàðîäîðîæñêèé, îáëÌèíñêàÿ;Áåëàðóñü
Подскажите как использовать шаблон в Laravel? К примеру, нужно чтобы меню было на всех страницахКуда кинуть код с этой менюшкой и где указать...
Всем привет! На каком языке можно сделать декстопную версию похожую на инстатул или тулиграм(http://andrey7-softru/, https://tooligram