数组值作为 assoc 数组键


Array values as assoc array keys

我想从另一个数组的变量中填充一个 assoc 数组。

我有这样的数组

$keys = array("key1", "key2", "key3");

现在我想像这样用这些键填充数组

$someArray["key1"]["key2"]["key3"] = "some value";

当然,它也可以像这样工作

$someArray[$keys[0]][$keys[1]][$keys[2]] = "some value";

但是密钥的数量可能会有所不同,并且每个循环的密钥数量都不同。我想在层次结构中翻译一些数据。

所以我很乐意从$keys数组动态地执行此操作。

现在我创建了一个 Json 字符串,将解码的 Json 推送到$someArray并在其上使用array_merge - 但我认为应该有一种更优雅的方式。

谢谢你们

使用带有引用变量的循环:

$someArray = array();
$where =& $someArray;
foreach (array_slice($keys, 0, -1) AS $key) {
    $where[$key] = array();
    $where =& $where[$key];
}
$where[$keys[count($keys)-1]] = "some value";