簡體   English   中英

如何使用變量變量訪問關聯數組的特定深度

[英]How can I access a specific depth of an associative array with variable variables

我已經在這個問題上打了一段時間了。 我正在開發一款軟件,該軟件根據MySQL結果創建一棵樹,檢查每一行之間的變化,以確定在樹中的何處放置新數據。

我現在正處於死胡同,試圖理解如何動態地告訴PHP處理數組的不同部分。

我雖然使用變量變量,但似乎無法正常工作。 為了讓我的生活更輕松,我嘗試建立一個測試文件來測試此行為,這就是結果...

$array = [
    0 => [
        "name" => "test"
    ],
    1 => [
        "name" => "test",
        "data" => [
            "content" => 5
        ]
    ]
];

$ref = 'array["1"]["name"]';

echo $ref."\n";
echo $$ref;

輸出量

array["1"]["name"] 
Notice: Undefined variable: array["1"]["name"] in P:\xampp\htdocs\assets\php\test.php on line 23

相反,我期待的是test東西。

我還想提到我已經嘗試過${}方法,但是我不影響數組,而是在極少數情況下將數據添加到另一個變量中而不會輸出錯誤。

有人可以幫忙嗎? 謝謝!

在再次考慮問題之后,我想出了一種解決方法來達到預期的結果。 我決定將引用make與&$var一起使用。

因此,我決定調整代碼以創建要執行的每個步驟的數組,而不是字符串。 示例如下:

// Old method
$ref = 'array["1"]["name"];

// New method
$ref = ["1", "name"];

然后,代碼通過循環遍歷數組來引用原始數組,但隨后逐漸加深...

// Referencing the original array
$referencedArray = &$array;

// Going one step at the time inside the nested array
foreach ($ref as $k => $v) {
   $referencedArray = &$referencedArray[$rav];
}

我相信此解決方案可能適合我的情況,但是如果您有任何建議,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM