Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menukar Kunci yang Dipisahkan Koma dengan Cekap = Rentetan Nilai kepada Tatasusunan Bersekutu?

Bagaimanakah Saya Boleh Menukar Kunci yang Dipisahkan Koma dengan Cekap = Rentetan Nilai kepada Tatasusunan Bersekutu?

Susan Sarandon
Susan Sarandonasal
2024-12-04 00:30:11231semak imbas

How Can I Efficiently Convert a Comma-Separated Key=Value String into an Associative Array?

Menukar Rentetan Dipisahkan Koma bagi Ungkapan Kunci=Nilai kepada Tatasusunan Bersekutu

Menghuraikan rentetan pasangan nilai kunci yang dipisahkan koma menjadi tatasusunan bersekutu boleh menjadi tugas yang membosankan. Walaupun kaedah yang dicadangkan untuk menggunakan explode() dan foreach mungkin mudah, ia boleh menjadi tidak cekap untuk rentetan yang lebih besar.

Pendekatan Lebih Cekap Menggunakan Ungkapan Biasa

A lagi penyelesaian yang elegan dan cekap ialah memanfaatkan ungkapan biasa:

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

Pendekatan ini menggunakan fungsi preg_match_all() untuk mengekstrak semua padanan pasangan nilai kunci menggunakan corak regex ([^,= ] )=([^,= ] ). Padanan yang terhasil disimpan dalam tatasusunan $r dengan kunci disimpan dalam $r[1] dan nilai dalam $r[2]. Akhir sekali, fungsi array_combine() menggabungkan kekunci dan nilai untuk mencipta tatasusunan bersekutu yang diingini.

Rentetan contoh yang disediakan dalam soalan akan menghasilkan tatasusunan bersekutu berikut:

array(
  "key" => "value",
  "key2" => "value2"
)

Ini kaedah menawarkan penyelesaian ringkas dan berprestasi untuk menghuraikan rentetan nilai kunci yang dipisahkan koma.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Kunci yang Dipisahkan Koma dengan Cekap = Rentetan Nilai kepada Tatasusunan Bersekutu?. 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