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

Mary-Kate Olsen
Lepaskan: 2024-10-22 06:23:31
asal
830 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!