Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah String dengan Struktur Tatasusunan Boleh Diubah menjadi Tatasusunan Sebenar?

Bagaimanakah String dengan Struktur Tatasusunan Boleh Diubah menjadi Tatasusunan Sebenar?

Susan Sarandon
Susan Sarandonasal
2024-10-30 05:32:28976semak imbas

How Can a String with an Array Structure Be Transformed into an Actual Array?

Menukar Rentetan dengan Struktur Tatasusunan kepada Tatasusunan

Menukar rentetan dengan struktur tatasusunan seperti "Main.Sub.SubOfSub" kepada tatasusunan sebenar boleh dicapai menggunakan kod yang sesuai. Katakan anda mempunyai nilai rentetan ini:

Main.Sub.SubOfSub

Dan item data yang sepadan:

SuperData

Matlamatnya adalah untuk membina tatasusunan dengan struktur berikut:

Array
(
[Main] => Array
    (
        [Sub] => Array
            (
                [SubOfSub] => SuperData
            )

    )
)

Untuk melakukan penukaran ini, pertimbangkan coretan kod berikut:

<code class="php">$path = explode('.', $key);
$root = &amp;$target;

while (count($path) > 1) {
    $branch = array_shift($path);
    if (!isset($root[$branch])) {
        $root[$branch] = array();
    }

    $root = &amp;$root[$branch];
}

$root[$path[0]] = $value;</code>

Kod ini pada asasnya melaksanakan logik untuk mencipta struktur tatasusunan bersekutu berdasarkan laluan rentetan yang disediakan. Ia berulang melalui segmen laluan, mencipta tatasusunan bersarang seperti yang diperlukan dan memperuntukkan data yang disediakan kepada segmen akhir laluan.

Dengan menggunakan operator rujukan (&), kod tersebut mengubah suai tatasusunan sasaran asal secara langsung, memastikan tatasusunan yang terhasil mempunyai struktur yang diingini.

Atas ialah kandungan terperinci Bagaimanakah String dengan Struktur Tatasusunan Boleh Diubah menjadi Tatasusunan Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn