我需要动态计算我的多维数组键以在 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

需要使用键 aggsname 计算数组键

如何在数组中动态创建键?

谢谢

最佳答案

希望这是你想要的。我用键创建了一个数组。然后遍历该数组以创建多维数组

$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/

10-12 05:36