Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana dengan Cekap Menukar Rentetan Terhad kepada Tatasusunan Bersekutu tanpa Gelung?

Bagaimana dengan Cekap Menukar Rentetan Terhad kepada Tatasusunan Bersekutu tanpa Gelung?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-22 06:23:31830semak imbas

How to Efficiently Convert a Delimited String into an Associative Array without Loops?

Meletupkan Rentetan menjadi Array Bersekutu dengan cekap

Menukar rentetan kepada tatasusunan bersekutu ialah tugas biasa dalam pengaturcaraan. Walau bagaimanapun, berbuat demikian tanpa menggunakan gelung boleh mencabar. Mari kita terokai penyelesaian kepada masalah meletupkan rentetan seperti "1-350,9-390.99" ke dalam tatasusunan bersekutu:

PHP 5.5 dan kemudiannya menyediakan cara bijak untuk mencapai ini menggunakan gabungan array_chunk dan array_column . Begini caranya:

<code class="php">$input  = '1-350,9-390.99';

$chunks = array_chunk(preg_split('/[-,]/', $input), 2);
$result = array_combine(array_column($chunks, 0), array_column($chunks, 1));

print_r($result);</code>

Kod ini mula-mula membahagi rentetan input kepada ketulan menggunakan fungsi preg_split, memisahkan rentetan dengan sempang (-) dan koma (,). Kemudian, ia menggunakan array_column untuk mengekstrak lajur pertama dan kedua bagi ketulan, yang sepadan dengan kunci dan nilai tatasusunan bersekutu, masing-masing. Akhir sekali, array_combine digunakan untuk mencipta tatasusunan bersekutu.

Hasilnya ialah tatasusunan bersekutu dengan kekunci ialah nilai pertama bagi ketulan (cth., "1" dan "9"), dan nilainya ialah nilai kedua ketulan (cth., "350" dan "390.99"). Pendekatan ini menghapuskan keperluan untuk gelung, menjadikannya penyelesaian yang cekap dan ringkas untuk menukar rentetan yang dibataskan kepada tatasusunan bersekutu.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan Terhad kepada Tatasusunan Bersekutu tanpa Gelung?. 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
Artikel sebelumnya:Corak Reka Bentuk PHP: FasadArtikel seterusnya:Corak Reka Bentuk PHP: Fasad