Dalam PHP, kadangkala kita perlu menukar rentetan kepada tatasusunan. Apabila rentetan mengandungi perkataan Inggeris atau aksara Cina, kita mungkin perlu membahagikannya kepada elemen tatasusunan. Di sini, artikel ini akan memperkenalkan secara terperinci cara menukar rentetan bahasa Cina dan Inggeris kepada tatasusunan.
Pertama, mari kita lihat cara memecahkan rentetan kepada elemen tatasusunan dalam PHP. Ini boleh dicapai menggunakan fungsi explode() dalam PHP:
$str = "Hello World"; $arr = explode(" ", $str); print_r($arr);
Hasil keluaran program ini ialah:
Array ( [0] => Hello [1] => World )
Dalam atur cara di atas, ruang digunakan sebagai pemisah untuk memecahkan rentetan ke dalam elemen tatasusunan. Antaranya, parameter pertama fungsi explode() menentukan pembatas, dan parameter kedua ialah pembolehubah rentetan yang akan dipecahkan.
Seterusnya, kami mempertimbangkan cara menukar rentetan campuran Cina dan Inggeris kepada tatasusunan. Di sini kita perlu menggunakan ungkapan biasa PHP untuk memisahkan rentetan. Mengambil ayat campuran Cina dan Inggeris sebagai contoh, kita boleh menggunakan atur cara berikut untuk menukar rentetan kepada tatasusunan:
$str = "Hello,世界"; preg_match_all("/./u", $str, $matches); print_r($matches[0]);
Keluaran atur cara di atas adalah seperti berikut:
Array ( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => , [6] => 世 [7] => 界 )
Di sini, kami menggunakan Fungsi preg_match_all() membahagikan rentetan kepada tatasusunan berdasarkan ungkapan biasa. Antaranya, ungkapan biasa "/./u" bermaksud memadankan semua aksara (termasuk bahasa Cina), dan u bermaksud menghuraikan dalam pengekodan UTF-8, memastikan aksara Cina boleh diproses dengan betul.
Atur cara di atas menggunakan fungsi preg_match_all() untuk memecahkan rentetan kepada elemen tatasusunan Jika terdapat aksara Cina dalam rentetan, ia akan dibahagikan kepada aksara seperti biasa. Daripada hasil keluaran, kita dapat melihat bahawa atur cara menyimpan semua aksara yang berselerak ke dalam pembolehubah tatasusunan $matches[0].
Jika kita ingin menyimpan aksara Inggeris dan Cina dalam rentetan secara berasingan ke dalam elemen tatasusunan yang berbeza, kita boleh menggunakan atur cara berikut:
$str = "Hello,世界"; preg_match_all("/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u", $str, $matches); print_r($matches[0]);
Output program ini adalah seperti berikut:
Array ( [0] => Hello [1] => 世界 )
Dalam atur cara di atas, ungkapan biasa "/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u"
digunakan, dengan [x{4e00}-x{9fa5}] bermaksud padanan aksara Cina dan [A-Za-z] bermaksud padanan aksara Inggeris.
Jika kita perlu menukar aksara Cina kepada Pinyin, dan Pinyin juga disimpan sebagai elemen tatasusunan, kita boleh menggunakan atur cara berikut:
$str = "你好,世界"; preg_match_all("/[x{4e00}-x{9fa5}]+|[A-Za-z]+/u", $str, $matches); for($i=0; $i<count($matches[0]); $i++){ $str = $matches[0][$i]; if (preg_match("/[x{4e00}-x{9fa5}]/u", $str)) { $pinyin = PinYin($str); $arr[] = $pinyin[0]; } else { $arr[] = $str; } } print_r($arr);
Hasil larian program ini adalah seperti berikut :
Array ( [0] => ni [1] => hao [2] => shi [3] => jie )
Dalam atur cara di atas, kami merangkum fungsi PinYin(), yang digunakan untuk menukar aksara Cina kepada Pinyin. Dalam program ini, selagi rentetan mengandungi aksara Cina, fungsi ini akan dipanggil untuk menukar aksara Cina kepada Pinyin dan menyimpannya dalam pembolehubah tatasusunan $arr.
Pada ketika ini, kami telah berjaya menukar rentetan bahasa Cina dan Inggeris kepada tatasusunan. Jika anda perlu melakukan pemprosesan aksara dan analisis teks, menukar rentetan kepada tatasusunan akan menjadi salah satu fungsi PHP yang biasa anda gunakan.
Atas ialah kandungan terperinci PHP rentetan Cina dan Inggeris kepada tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!