將 'project|page|index' => 'content' 形式的扁平陣列,轉換為巢狀結構 ['project'=>['page'=>['index'=>'content']]]。
// 輸入
$config = array(
'project|page|index' => 'content',
'project|page|nav' => array( array('image'=>'1.jpg','name'=>'home'), array('image'=>'2.jpg','name'=>'about') ),
'project|page|open' => true
);
// 輸出
$result = array(
'project' => array(
'page' => array(
'index' => 'content',
'nav' => array(...),
'open' => true
)
)
);
function buildNestedArray($flat){
$nested = array();
foreach($flat as $path => $value){
$keys = explode('|', $path);
$ref = &$nested;
foreach($keys as $key){
if(!isset($ref[$key])) $ref[$key] = array();
$ref = &$ref[$key];
}
$ref = $value;
}
return $nested;
}
&$ref 逐層建立/進入子陣列。