PHP动态创建多维数组键

erw*_*sad 3 php arrays key multidimensional-array

我需要动态计算我的多维数组键以在 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
Run Code Online (Sandbox Code Playgroud)

数组键需要用键aggsname

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

谢谢

B. *_*sai 8

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

$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;
}
Run Code Online (Sandbox Code Playgroud)

例子