Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Meletupkan Array dengan \', \' dan \'dan\' Sebelum Elemen Terakhir?

Bagaimana untuk Meletupkan Array dengan \', \' dan \'dan\' Sebelum Elemen Terakhir?

DDD
DDDasal
2024-12-01 06:58:12598semak imbas

How to Implode an Array with

Meletupkan Tatasusunan dengan ", " dan "dan" Sebelum Item Terakhir

Meletupkan tatasusunan ke dalam rentetan menggunakan senarai yang dipisahkan koma ialah tugas biasa. Walau bagaimanapun, apabila anda perlu menambah "dan" sebelum item terakhir, ia tidak selalunya mudah.

Fungsi Letupan Biasa

Fungsi implode() boleh digunakan untuk menggabungkan unsur-unsur sesuatu tatasusunan ke dalam rentetan, dengan pemisah yang ditentukan. Contohnya, kod berikut akan meletupkan pelbagai nama minuman ke dalam senarai yang dipisahkan koma:

$listArrau = ['coke', 'sprite', 'fanta'];
$listString = implode(', ', $listArrau);

Ini akan menghasilkan rentetan berikut:

coke, sprite, fanta

Menambah "dan" Sebelum Item Terakhir

Untuk memasukkan "dan" sebelum item terakhir, kita perlu mengubah suai proses letupan. Berikut ialah penyelesaian garis panjang:

echo join(' and ', array_filter(array_merge(array(join(', ', array_slice($array, 0, -1))), array_slice($array, -1)), 'strlen'));

Ungkapan ini terbahagi kepada beberapa langkah:

  1. Hiris tatasusunan: Dua keping dibuat, satu ke dapatkan semua item kecuali yang terakhir, dan satu lagi untuk dapatkan item terakhir sahaja.
  2. Gabungkan kepingan: Dua keping digabungkan menjadi tatasusunan satu dimensi.
  3. Tapis tatasusunan: Tatasusunan yang digabungkan ditapis untuk mengalih keluar elemen kosong (memastikan tiada nilai kosong atau pemisah mengekori).
  4. Sertai tatasusunan: Tatasusunan yang ditapis dicantumkan menggunakan " dan " sebagai pemisah, menghasilkan rentetan yang diingini.

Berikut ialah versi verbose dengan langkah-langkah dipisahkan:

$last = array_slice($array, -1);
$first = join(', ', array_slice($array, 0, -1));
$both = array_filter(array_merge(array($first), $last), 'strlen');
echo join(' and ', $both);

Pendekatan berbilang langkah ini membolehkan kami mengendalikan kes dengan sebarang bilangan item, termasuk 0, 1 dan 2 item, dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Meletupkan Array dengan \', \' dan \'dan\' Sebelum Elemen Terakhir?. 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