Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana dengan Cekap Menukar Rentetan Sintaks Dot kepada Tatasusunan Berbilang Dimensi dalam PHP?

Bagaimana dengan Cekap Menukar Rentetan Sintaks Dot kepada Tatasusunan Berbilang Dimensi dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 16:01:11415semak imbas

How to Efficiently Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

Menukar Rentetan Sintaks Dot kepada Tatasusunan Berbilang Dimensi dalam PHP

Soalan:

Bagaimanakah rentetan sintaks titik, seperti " this.that.other", ditukar dengan cekap kepada tatasusunan berbilang dimensi dalam PHP?

Jawapan:

Penyelesaian yang sangat berkesan ialah menggunakan fungsi rekursif seperti di bawah:

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

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

    $arr = $value;
}

Fungsi ini merentasi secara berulang tatasusunan, menggunakan '.' sebagai pemisah, mencipta sebarang kekunci yang hilang di sepanjang jalan, sehingga ia mencapai sifat yang diingini dan menetapkan nilainya.

Sebagai contoh, dengan rentetan sampel berikut: "s1.t1.column.1 = saiz:33 %", fungsi itu akan menghasilkan struktur tatasusunan bersamaan dengan:

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

print_r($source); // Outputs: ['s1' => ['t1' => ['column' => ['1' => 'size:33%']]]]

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan Sintaks Dot kepada Tatasusunan Berbilang Dimensi dalam PHP?. 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