Rumah > pembangunan bahagian belakang > masalah PHP > PHP rentetan Cina dan Inggeris kepada tatasusunan

PHP rentetan Cina dan Inggeris kepada tatasusunan

王林
Lepaskan: 2023-05-19 19:13:05
asal
605 orang telah melayarinya

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

Hasil keluaran program ini ialah:

Array
(
    [0] => Hello
    [1] => World
)
Salin selepas log masuk

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

Keluaran atur cara di atas adalah seperti berikut:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] => ,
    [6] => 世
    [7] => 界
)
Salin selepas log masuk

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

Output program ini adalah seperti berikut:

Array
(
    [0] => Hello
    [1] => 世界
)
Salin selepas log masuk

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

Hasil larian program ini adalah seperti berikut :

Array
(
    [0] => ni
    [1] => hao
    [2] => shi
    [3] => jie
)
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan