6
$first = array("a", "b" => array("c", "d" => array("e", "f")), "g", "h" => array("f"));
$second = array("b", "d", "f");
$string = "foobar";
鑑於上述代碼,我怎樣才能在$first
在$second
定義的$string
內容的索引設置的值?這個例子的含義應該是$first["b"]["d"]["f"] = $string;
,但$second
和$first
的內容可以是任意長度。然而,$second
將始終是一維。下面是我試過,這似乎並沒有按計劃工作:如何動態地訪問值在一個可變的多維陣列
$key = "";
$ptr = $first;
for($i = 0; $i < count($second); $i++)
{
$ptr &= $ptr[$second[$i]];
$key = key($ptr);
}
$first[$key] = $string;
這將做$first["f"] = $string;
,而不是正確的多維指標。我曾經認爲使用key
會發現陣列中的位置,包括它已經下移的位置。
如何動態訪問正確的密鑰?如果維數是靜態的,我可以管理這個。
編輯:此外,我想要一種方法來做到這一點,不使用eval
。