Dalam PHP, rentetan dan tatasusunan ialah salah satu jenis data yang paling biasa digunakan. Rentetan biasanya data yang terdiri daripada satu set aksara, manakala tatasusunan ialah struktur data yang terdiri daripada senarai data tersusun. Dalam PHP, kadangkala kita perlu menukar rentetan kepada tatasusunan untuk melaksanakan operasi yang lebih fleksibel pada data di dalamnya. Artikel ini akan memperkenalkan cara menukar rentetan kepada tatasusunan dalam PHP dan meneroka isu berkaitannya di bawah pengekodan UTF-8.
1. Menukar rentetan kepada tatasusunan dalam PHP
Menukar rentetan kepada tatasusunan dalam PHP boleh dicapai melalui pelbagai kaedah, seperti fungsi seperti explode(), str_split() dan preg_split( ). Dua daripada kaedah ini diperkenalkan di bawah.
Fungsi explode() ialah cara biasa untuk menukar rentetan kepada tatasusunan dalam PHP sintaksnya adalah seperti berikut:
array explode(string $delimiter, string $string [, int $limit = PHP_INT_MAX])
Kita boleh menukarnya menjadi tatasusunan dengan koma sebagai pembatas, kodnya adalah seperti berikut:
$str = "apple,banana,orange";
Hasil keluarannya ialah:
$arr = explode(",", $str); print_r($arr);
Array ( [0] => apple [1] => banana [2] => orange )
Antaranya, $string ialah rentetan yang hendak ditukar, $split_length ialah parameter pilihan, menyatakan panjang setiap aksara, lalai ialah 1 aksara.
array str_split(string $string [, int $split_length = 1])
Kami boleh menukarnya menjadi tatasusunan aksara dengan kod berikut:
$str = "hello world";
Hasil output ialah:
$arr = str_split($str); print_r($arr);
2 Isu dengan pengekodan aksara dan pengekodan UTF-8
Array ( [0] => h [1] => e [2] => l [3] => l [4] => o [5] => [6] => w [7] => o [8] => r [9] => l [10] => d )
Kami mahu menukarnya menjadi tatasusunan aksara, tetapi jika kami menggunakan str_split secara langsung () fungsi, keputusan berikut akan diperolehi:
$str = "中文test";
Dapat dilihat bahawa aksara Cina terbahagi kepada dua aksara secara salah.
Array ( [0] => 中 [1] => 文 [2] => t [3] => e [4] => s [5] => t )
di mana $string ialah rentetan yang hendak ditukar dan $split_length adalah pilihan. parameter. , menentukan panjang setiap aksara, lalai ialah 1 aksara, $encoding ialah parameter pilihan, menentukan pengekodan aksara, lalai ialah mb_internal_encoding().
array mb_str_split(string $string [, int $split_length = 1 [, string $encoding = mb_internal_encoding()]])
Outputnya ialah:
$arr = mb_str_split($str); print_r($arr);
Hasilnya betul.
Array ( [0] => 中 [1] => 文 [2] => t [3] => e [4] => s [5] => t )
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!