Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Meletupkan Rentetan dengan Cekap ke dalam Tatasusunan Bersekutu tanpa Gelung dalam PHP?

Bagaimana untuk Meletupkan Rentetan dengan Cekap ke dalam Tatasusunan Bersekutu tanpa Gelung dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-10-22 06:29:30809semak imbas

How to Efficiently Explode a String into an Associative Array without Loops in PHP?

Rentetan Cekap Meletup ke Tatasusunan Bersekutu

Meletup rentetan ke dalam tatasusunan bersekutu ialah tugas biasa dalam pengaturcaraan. Soalan ini meneroka kaedah untuk mencapai ini dengan cekap tanpa menggunakan gelung.

Cabaran

Diberi rentetan yang mengandungi pasangan nilai yang dipisahkan koma (cth., "1-350 ,9-390.99"), matlamatnya adalah untuk mengubahnya menjadi tatasusunan bersekutu di mana nilai pertama menjadi kunci dan nilai kedua menjadi nilai yang berkaitan.

Jawapan

Memanfaatkan kuasa fungsi tatasusunan PHP, adalah mungkin untuk melaksanakan transformasi ini hanya dalam dua baris:

<code class="php">$chunks = array_chunk(preg_split('/[-,]/', $input), 2);
$result = array_combine(array_column($chunks, 0), array_column($chunks, 1));</code>

Penjelasan

  1. Array_chunk: Membahagikan rentetan input kepada ketulan pasangan.
  2. Array_column: Mengekstrak kekunci dan nilai daripada ketulan kepada tatasusunan berasingan.
  3. Array_combine : Mencipta tatasusunan bersekutu dengan menggabungkan kekunci dan nilai.

Kaedah ini memisahkan kunci dan nilai dengan cekap dan menggabungkannya ke dalam tatasusunan bersekutu yang dikehendaki tanpa memerlukan pemprosesan berulang.

Atas ialah kandungan terperinci Bagaimana untuk Meletupkan Rentetan dengan Cekap ke dalam Tatasusunan Bersekutu tanpa Gelung 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