Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Menghuraikan Pasangan Nilai Kunci dengan Cekap daripada Rentetan Dipisahkan Koma dalam PHP?

Bagaimana Menghuraikan Pasangan Nilai Kunci dengan Cekap daripada Rentetan Dipisahkan Koma dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 04:12:15319semak imbas

How to Efficiently Parse Key-Value Pairs from a Comma-Separated String in PHP?

Menghuraikan Ungkapan Nilai Kunci daripada Rentetan Dipisahkan Koma

Menukar rentetan ungkapan nilai kunci yang dipisahkan koma kepada tatasusunan bersekutu ialah tugas biasa dalam PHP. Pendekatan mudah mungkin melibatkan meletupkan rentetan ke dalam tatasusunan, memangkas setiap elemen, dan kemudian memisahkan setiap elemen kepada kunci dan nilai menggunakan letupan lain. Walau bagaimanapun, terdapat cara yang lebih cekap untuk mencapainya menggunakan ungkapan biasa.

Memandangkan rentetan seperti "key=value, key2=value2", berikut ialah cara anda boleh menghuraikannya dengan regex:

$str = "key=value, key2=value2";
preg_match_all("/([^,= ]+)=([^,= ]+)/", $str, $r); 
$result = array_combine($r[1], $r[2]);
var_dump($result);

Corak regex /([^,= ] )=([^,= ] )/ sepadan dengan sebarang jujukan bukan ruang, bukan koma dan aksara bukan sama diikuti dengan tanda sama (=), diikuti dengan urutan lain bukan ruang, bukan koma dan bukan sama. Fungsi preg_match_all kemudiannya digunakan untuk memadankan corak dalam rentetan dan menangkap kumpulan yang dipadankan dalam tatasusunan ($r). Akhir sekali, fungsi array_combine digunakan untuk menggabungkan kumpulan ditangkap pertama dan kedua ($r[1] dan $r[2]) sebagai kunci dan nilai tatasusunan bersekutu.

Pendekatan ini menghuraikan kunci- dengan cekap ungkapan nilai dalam satu padanan ungkapan biasa, tanpa memerlukan pelbagai transformasi tatasusunan atau gelung. Hasilnya ialah tatasusunan bersekutu yang dibina dengan kemas di mana setiap kunci dipetakan kepada nilai masing-masing.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Pasangan Nilai Kunci dengan Cekap daripada Rentetan Dipisahkan Koma 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