从php中的简单数组构建动态关联数组

问题描述

我有一个如下所示的数组

$arr = ['Product','Category','Rule'];

这可以是动态数组,这意味着它有时内部可以包含1-5个元素,并且其值可以更改。 我们怎样才能以一种动态的方式从上一个创建一个如下所示的数组。

$json['Product']['Category']['Rule'] = 'fixed';

简单地说,我只是试图从我从$ arr获得的值中创建一个多维数组。

解决方法

此功能应该可以做到。

function nestArray($arr,$value) {
    if (!count($arr)) {
        return $value;
    }
    foreach (array_reverse($arr) as $key) {
        $new = [$key => $value];
        $value = $new;
    }
    return $new;
}

示例

$arr = ['Product','Category','Rule'];
$nested = nestArray($arr,'fixed');
print_r($nested);

输出

Array
(
    [Product] => Array
        (
            [Category] => Array
                (
                    [Rule] => fixed
                )

        )

)