Основная идея в том, что я хочу преобразовать этот массив:

$arr1 = ['user', 'address', 'street'];

К этому:

$arr2['user']['address']['street'];

Я пробовал использовать рекурсивные функции, foreach, for ... но я не мог понять, как это сделать.

Примере:

function appendingArrays($arrayOfKeys, $value) {
    // TODO
}
$finalArray = appendingArrays(['user', 'address', 'street'], 'Lombard Street');

echo $finalArray['user']['address']['street']; // Lombard Street

Любая идея?

2
Lenik 8 Окт 2020 в 14:41

1 ответ

Лучший ответ

Надеюсь это поможет : Пройти демонстрацию

[akshay@db1 tmp]$ cat test.php 
<?php

$arr1 = ['user', 'address', 'street'];

$c = count($arr1) - 1;
$out = array();
for($i = $c; $i >= 0; $i--)
{
    $out = array($arr1[$i] => $out);
}

/* input */  
print_r($arr1);

/* output */
print_r($out);

Выход:

[akshay@db1 tmp]$ php test.php 
Array
(
    [0] => user
    [1] => address
    [2] => street
)
Array
(
    [user] => Array
        (
            [address] => Array
                (
                    [street] => Array
                        (
                        )

                )

        )

)
2
Akshay 8 Окт 2020 в 11:47