我想从另一个数组的变量中填充一个 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";