Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menukar Rentetan Sintaks Dot secara Rekursif kepada Tatasusunan Berbilang Dimensi dalam PHP?

Bagaimanakah Saya Boleh Menukar Rentetan Sintaks Dot secara Rekursif kepada Tatasusunan Berbilang Dimensi dalam PHP?

Patricia Arquette
Lepaskan: 2024-11-29 05:28:17
asal
647 orang telah melayarinya

How Can I Recursively Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

Cara Membuat Tatasusunan Berbilang Dimensi daripada Sintaks Titik dalam PHP

Dalam PHP, menukar sintaks titik (seperti "this.that.other" ) ke dalam tatasusunan berbilang dimensi boleh menjadi tugas yang berguna untuk mengatur data. Begini cara untuk mencapai penukaran ini:

Menggunakan Fungsi Rekursif:

Fungsi berikut, assignArrayByPath(), boleh menavigasi sintaks titik secara rekursif dan mencipta tatasusunan berbilang dimensi:

function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}
Salin selepas log masuk

Macam mana berfungsi:

  1. Fungsi ini mengambil empat parameter:

    • $arr: Tatasusunan berbilang dimensi untuk diubah suai.
    • $path: Sintaks titik laluan yang mewakili struktur kunci yang diingini.
    • $value: Nilai untuk diberikan kepada yang terakhir kunci.
    • $separator: (Pilihan) Pembatas yang digunakan dalam sintaks titik (lalai kepada .)
  2. Fungsi explode() membahagikan laluan kepada kekunci individu.
  3. Fungsi ini berulang melalui setiap kekunci, menggunakan rujukan untuk mengubah suai elemen yang sesuai dalam tatasusunan $arr.
  4. Jika kunci tidak wujud, ia dicipta dan diberikan kepada rujukan $arr.
  5. Akhir sekali, nilai $ diberikan kepada kunci terakhir dalam tatasusunan.

Contoh:

Untuk menukar sintaks titik "s1.t1.column.1" kepada tatasusunan berbilang dimensi, gunakan kod berikut:

$source = [];
assignArrayByPath($source, 's1.t1.column.1', 'size:33%');

echo $source['s1']['t1']['column']['1']; // Outputs: 'size:33%'
Salin selepas log masuk

Pendekatan ini menyediakan kaedah yang fleksibel dan rekursif untuk menukar sintaks titik kompleks kepada tatasusunan berbilang dimensi dalam PHP, memastikan bahawa walaupun kunci yang tidak wujud dicipta secara automatik. Ia amat berguna untuk menghuraikan struktur data bersarang ke dalam format tatasusunan berstruktur.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan Sintaks Dot secara Rekursif kepada Tatasusunan Berbilang Dimensi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan