@JZorkiy

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

Никак не получается придумать более менее короткий алгоритм следующего:

// Исходные данные
$arr1 = ["t1", "t2", "t3"];
$arr2 = [ ];
$val = 37;

// Должно получиться
$arr2["t1"]["t2"]["t3"] == $val;
  • Вопрос задан
  • 89 просмотров
Решения вопроса 2
0xD34F
@0xD34F
$arr2 = array_reduce(array_reverse($arr1), fn($p, $c) => [ $c => $p ], $val);
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
<?php
$arr1 = ["t1", "t2", "t3"];
$arr2 = [ ];
$val = 37;
$t = &$arr2;
foreach ($arr1 as $el) {
    $t[$el] = [];
    $t = &$t[$el];
}
$t = $val;
unset($t);
print_r($arr2);

// Array (
//   [t1] => Array (
//     [t2] => Array (
//       [t3] => 37
//     )
//   )
// )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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