@Aricus

Как записать значение в многомерный массив по ключам из одномерного массива?

Есть значения, вроде таких:
$value = 'Значение';
$keys = ['ключ 1', 'ключ 2', 'ключ 3']; // Количество элементов может быть любым, но не менее 1

Массив не является пустым. Нужно записать значение в массив так:
$array['ключ 1']['ключ 2']['ключ 3'] = 'Значение';
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
0xD34F
@0xD34F
function updateArray(&$array, $keys, $val) {
  $v = &$array;

  foreach ($keys as $k) {
    if (!isset($v[$k])) {
      $v[$k] = [];
    }

    $v = &$v[$k];
  }

  $v = $val;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
<?php
$value = 'Значение';
$keys = ['ключ 1', 'ключ 2', 'ключ 3'];

$array = [];

$t = &$array;
foreach ($keys as $key) {
    $t[$key] = [];
    $t = &$t[$key];
}
$t = $value;

print_r($array);

// Array (
//   [ключ 1] => Array (
//     [ключ 2] => Array (
//       [ключ 3] => Значение
//     )
//   )
// )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы