我想从另一个数组的变量填充一个assoc数组。
我有一个像这样的数组
$keys = array("key1", "key2", "key3");
现在我想用这样的键填充数组
$someArray["key1"]["key2"]["key3"] = "some value";
当然它也会像这样工作
$someArray[$keys[0]][$keys[1]][$keys[2]] = "some value";
但是键的数量可能会有所不同,每个循环的键数也不同。 我想在层次结构中翻译一些数据。
所以我很乐意从$ keys数组中动态执行此操作。
现在我创建一个Json String,将解码后的Json推送到$ someArray并在其上使用array_merge - 但我认为应该有更优雅的方式。
谢谢你们
答案 0 :(得分:1)
使用带引用变量的循环:
$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";