Есть многомерный массив $catalog с неограниченной вложенностью. Например,
Array
(
[1] => Array
(
[name] => Раздел 1
[11] => Array
(
[name] => Раздел 1.1
)
)
[2] => Array
(
[name] => Раздел 2
[21] => Array
(
[name] => Раздел 2.1
[211] => Array
(
[name] => Раздел 2.1.1
)
)
[22] => Array
(
[name] => Раздел 2.2
)
)
)
И есть массив $keys с определенным набором ключей для первого массива $catalog. Например,
Array
(
[0] => 2
[1] => 21
)
Используя эти примеры, как мне добавить в $catalog[2][21] новый элемент? Чтобы в массиве появилось:
[212] => Array
(
[name] => Раздел 2.1.2
)
Ок, нам нужно будет найти максимальный ключ на данном уровне вложенности и добавить к нему единицу, это и будет новый ключ.
$in_keys = [1,17,173];
$last_in_key = $in_keys[sizeof($in_keys) - 1];
$curr_el = $catalog;
foreach($in_keys => $k) {
$curr_el = $curr_el[$k];
}
$keys = [];
foreach ($curr_el as $k => $v) {
if (is_numeric($k)) {
$keys[] = $k;
}
}
$max_key = sizeof($keys) > 0 ? max($keys) : $last_in_key * 10;
$new_key = $max_key + 1;
$curr_el[$new_key] = $new_element;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытался установить composer Ввожу команду php composerphar install и выдает следующую ошибку
Пытаюсь переписать значения в бд используя массивы, каждый раз ругается на значение индекса $row[t2] в строчке :