[英]Accessing nested array with variable variable name
在php中有變量變量名 :
如示例所示:
$a = 'hello';
$$a = 'world';
echo $hello; // outputs world
現在,我們還有嵌套數組:
$myvar = Array(
'a' => Array('b' => 1, 'c' => 2),
'd' => Array('e' => 3, 'f' => 4)
);
echo $myvar['a']['e']; // outputs e
問題:是否可以使用變量名訪問此類數組?
類似於以下內容:
$myvarname = 'myvar[a][e]';
echo $$myvarname;
如果是,怎么辦?
編輯:
我想做的是在循環中建立一個數組。 我對傳入的數據一無所知,因此數組可以是任意深度。
有許多輸入行的格式如下:
/katalog/category1/subcategory1/subcategory2
我遍歷輸入行,並用“ /”分隔URL。
之后,我嘗試構建一個數組,該數組將表示所有url的結構。
category 1
--> subcategory 1
--> subcategory 2
--> subcategory 3
--> subcategory 4
category 2
--> subcategory 5
category 3
category 4
問題的主要部分是如何將變量變量用於嵌套數組。 如果可能的話。 我包括了實際用例,因為有人問我如何在現實生活中使用它。 不需要解決我的問題-我可以自己解決該問題。
但是,可變變量用法-這才是真正的問題。
我建議使用遞歸來解決此問題。 我不確定100%的輸出結構,但是希望這可以為您指明正確的方向:
function createArray($pieces, $array){
if(count($pieces) > 1){
$key = array_shift($pieces);
$array[$key] = createArray($pieces, isset($array[$key]) ? $array[$key] : []);
}
else{
$array[$pieces[0]] = [];
}
return $array;
}
演示: https : //eval.in/137546
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.