我需要动态计算我的多维数组键以在 Elasticsearch 中进行聚合。
我有以下$aggs['aggs']['name']
但是 aggs 和 name 需要循环填充。例如:
$aggs['aggs']['name']['aggs'] = $glue;
// looping
$aggs['aggs']['name']['aggs']['name']['aggs'] = $glue;
// looping
$aggs['aggs']['name']['aggs']['name']['aggs']['name']['aggs'] = $glue;
// etc
需要使用键
aggs
和 name
计算数组键如何在数组中动态创建键?
谢谢
最佳答案
希望这是你想要的。我用键创建了一个数组。然后遍历该数组以创建多维数组
$keys = array("aggs","name","aggs","name","aggs");
$aggs = array();
$aggs = add_keys_dynamic($aggs,$keys,"test");
echo "<pre>";
print_r($aggs);
function add_keys_dynamic($main_array, $keys, $value){
$tmp_array = &$main_array;
while( count($keys) > 0 ){
$k = array_shift($keys);
if(!is_array($tmp_array)){
$tmp_array = array();
}
$tmp_array = &$tmp_array[$k];
}
$tmp_array = $value;
return $main_array;
}
Example
关于PHP动态创建多维数组键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44948136/