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

Есть массив $keys, предположим
array(4) {
  [0]=>
  int(13)
  [1]=>
  string(12) "header_items"
  [2]=>
  int(1)
  [3]=>
  int(108)
}


Необходимо задать значение элементу массива $arr -
$arr[13]["header_items"][1][108]['value'] = 'some_value';

Как это сделать? В массиве $keys может быть разное количество элементов-ключей для массива $arr, т. е. может быть как больше, так и меньше четырех.
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
0xD34F
@0xD34F
$t = &$arr;

foreach ($keys as $key) {
  if (!isset($t[$key]) || !is_array($t[$key])) {
    $t[$key] = [];
  }

  $t = &$t[$key];
}

$t['value'] = $val;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@sl0
foreach ($keys as $key) {
    $element = $element[$key] ?? $arr[$key];
}

echo $element['value']
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы