Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar rentetan php kepada tatasusunan dua dimensi
Dalam PHP, menukar rentetan kepada tatasusunan ialah operasi yang sangat biasa, yang sering digunakan dalam beberapa aplikasi praktikal. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menukar rentetan kepada tatasusunan dua dimensi Saya harap ia akan membantu.
Pertama sekali, perlu diingatkan bahawa rentetan dalam artikel ini semuanya mematuhi format tertentu. Oleh itu, dalam aplikasi sebenar, rentetan perlu diproses dan diformat mengikut situasi sebenar untuk menukarnya dengan betul kepada tatasusunan. Di samping itu, kaedah yang disediakan dalam artikel ini bukanlah satu-satunya, dan juga tidak semestinya yang optimum Pembaca boleh menyesuaikannya mengikut keperluan dan keadaan sebenar mereka.
1. Format rentetan
Sebelum memperkenalkan kaedah pelaksanaan khusus, mari kita lihat dahulu format rentetan. Berikut ialah contoh:
str=0_0:value_1_1:value_2_1:value|1_0:value_1_1:value_2_1:value
Rentetan di atas terdiri daripada beberapa nilai dan formatnya adalah seperti ini:
a1_b1:value1_a2_b2:value2_a3_b3:value3|a1_b1:value1_a2_b2:value2_a3_b3:value3|...
di mana a1
, a2
, a3
mewakili nama kunci tatasusunan, b1
, b2
, b3
mewakili nilai kunci tatasusunan dan value1
, value2
, value3
mewakili nilai yang hendak ditukar kepada tatasusunan . Setiap set nilai dipisahkan oleh |
, dan setiap nilai dipisahkan oleh :
.
2. Kaedah pelaksanaan
Berdasarkan format rentetan di atas, kita boleh menggunakan kaedah berikut untuk menukarnya kepada tatasusunan dua dimensi.
Pertama, kita boleh menggunakan fungsi explode()
untuk memisahkan rentetan kepada tatasusunan satu dimensi. Berikut ialah contoh kod:
<?php $str = '0_0:value_1_1:value_2_1:value|1_0:value_1_1:value_2_1:value'; $arr1 = explode('|', $str); // 以 | 分割字符串为一维数组 print_r($arr1); ?>
Jalankan kod di atas, outputnya ialah:
Array ( [0] => 0_0:value_1_1:value_2_1:value [1] => 1_0:value_1_1:value_2_1:value )
Seperti yang anda lihat, rentetan berjaya dipecahkan kepada tatasusunan satu dimensi , setiap Setiap elemen ialah rentetan panjang a1_b1:value1_a2_b2:value2_a3_b3:value3
.
Seterusnya, kita boleh menggunakan gelung untuk menghuraikan setiap rentetan dalam tatasusunan satu dimensi kepada tatasusunan dua dimensi. Berikut ialah contoh kod:
<?php $str = '0_0:value_1_1:value_2_1:value|1_0:value_1_1:value_2_1:value'; $arr1 = explode('|', $str); // 以 | 分割字符串为一维数组 $arr2 = array(); // 定义空二维数组 foreach($arr1 as $val) { // 遍历一维数组 $tmp_arr = explode('_', $val); // 将字符串分割为键名和键值 $arr2[$tmp_arr[0]][$tmp_arr[1]] = $tmp_arr[2]; // 将值存入二维数组 $tmp_arr = explode(':', $tmp_arr[3]); // 将要转换的值分割为一维数组 foreach($tmp_arr as $k => $v) { $tmp_arr[$k] = explode('_', $v); $arr2[$tmp_arr[$k][0]][$tmp_arr[$k][1]] = $tmp_arr[$k][2]; } // 将一维数组转换为二维数组 } print_r($arr2); // 输出结果 ?>
Jalankan kod di atas, outputnya ialah:
Array ( [0_0] => Array ( [value] => 1 ) [1_1] => Array ( [value] => 1 ) [2_1] => Array ( [value] => 1 ) [1_0] => Array ( [value] => 1 ) [2_0] => Array ( [value] => 1 ) [1_1] => Array ( [value] => 2 ) [2_1] => Array ( [value] => 2 ) )
Seperti yang anda lihat, rentetan berjaya ditukar menjadi tatasusunan dua dimensi , dengan setiap elemen Semuanya ialah pasangan nilai kunci, di mana nama kunci dan nilai kunci sepadan dengan a1
dan b1
dalam rentetan masing-masing.
3. Ringkasan
Artikel ini memperkenalkan dua kaedah untuk menukar rentetan kepada tatasusunan dua dimensi. Antaranya, kaedah pertama menggunakan fungsi explode()
untuk memisahkan rentetan kepada tatasusunan satu dimensi, dan kemudian menggunakan gelung untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi, kaedah kedua secara langsung menggunakan gelung untuk menghuraikan rentetan ke dalam tatasusunan dua dimensi. Pembaca boleh memilih kaedah yang berbeza mengikut situasi sebenar untuk menyelesaikan tugasan yang sepadan dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan php kepada tatasusunan dua dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!