Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar rentetan php kepada tatasusunan dua dimensi

Bagaimana untuk menukar rentetan php kepada tatasusunan dua dimensi

PHPz
PHPzasal
2023-04-27 09:01:45773semak imbas

Dalam pengaturcaraan PHP, jika anda perlu menukar rentetan kepada tatasusunan dua dimensi, anda boleh menggunakan beberapa kaedah yang mudah tetapi sangat praktikal. Artikel ini akan memperkenalkan cara menukar rentetan kepada tatasusunan dua dimensi dan melaksanakan penghuraian data, serta ralat dan penyelesaian biasa.

1 Tukar rentetan kepada tatasusunan dua dimensi

1 Gunakan fungsi explode()

fungsi explode() PHP boleh memisahkan rentetan mengikut yang ditentukan. aksara ke dalam tatasusunan dan tukar setiap bahagian kepada jenis rentetan. Jika anda perlu membahagi tatasusunan pisah kepada tatasusunan dua dimensi sekali lagi, anda boleh merentasi setiap elemen yang dipecah oleh pembatas dan menggunakan fungsi explode() sekali lagi.

Kod sampel:

$str = "1,2,3|4,5,6|7,8,9";
$arr = explode("|", $str);
$new_arr = array();
foreach ($arr as $item) {
    $new_arr[] = explode(",", $item);
}
print_r($new_arr);

Hasil keluaran:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

Di sini, dengan membelah menggunakan "|" sebagai pembatas, tatasusunan satu dimensi $arr diperolehi. Kemudian gunakan operasi traversal untuk membelah setiap elemen sekali lagi, menggunakan "," sebagai pemisah untuk memisahkan, dan dapatkan tatasusunan dua dimensi baharu $new_arr.

2. Gunakan fungsi preg_split()

Selain menggunakan fungsi explode() untuk operasi pemisahan rentetan, anda juga boleh menggunakan fungsi preg_split(). Penggunaannya berbeza daripada fungsi explode() kerana ia membenarkan pemisahan rentetan menggunakan ungkapan biasa dan boleh mengendalikan kes yang lebih kompleks.

Kod sampel:

$str = "1,2,3|4,5,6|7,8,9";
$arr = preg_split("/\|/", $str, -1, PREG_SPLIT_NO_EMPTY);
$new_arr = array();
foreach ($arr as $item) {
    $new_arr[] = preg_split("/,/", $item, -1, PREG_SPLIT_NO_EMPTY);
}
print_r($new_arr);

Hasil keluaran adalah sama dengan kaedah pertama, kedua-duanya ialah:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )

)

Di sini, apabila menggunakan fungsi preg_split() untuk memisahkan, gunakan biasa Ungkapan "/|/" bermaksud menggunakan bar menegak "|" sebagai pembatas, dan "/,/" bermaksud menggunakan koma "," sebagai pembatas.

2. Menghuraikan tatasusunan dua dimensi selepas menukar rentetan

Selepas menukar rentetan kepada tatasusunan dua dimensi, ia perlu dihuraikan untuk mendapatkan data tertentu. Berikut ialah beberapa kaedah biasa:

1 Dapatkan data melalui gelung berganda

Kaedah paling mudah ialah merentasi keseluruhan tatasusunan dua dimensi melalui operasi gelung berganda dan mendapatkan data satu demi satu.

Kod sampel:

foreach ($new_arr as $item) {
    foreach ($item as $value) {
        echo $value . " ";
    }
    echo "<br/>";
}

Hasil keluaran:

1 2 3 
4 5 6 
7 8 9

Di sini, lintasi keseluruhan tatasusunan dua dimensi $new_arr melalui gelung foreach, mula-mula dapatkan tatasusunan satu dimensi $ item, dan kemudian Lintas setiap nilai $value dalam $item sekali lagi untuk mengeluarkan.

2. Dapatkan data melalui subskrip

Sekiranya lokasi data yang ingin diperolehi, ia boleh diperolehi terus melalui subskrip.

Kod sampel:

echo $new_arr[1][2];

Hasil keluaran:

6

Di sini, terus gunakan subskrip $new_arr1 untuk mendapatkan yang ketiga tatasusunan satu dimensi kedua dalam dua dimensi elemen tatasusunan.

3. Ralat dan Penyelesaian Biasa

Apabila menukar rentetan kepada tatasusunan dua dimensi, ralat biasa termasuk yang berikut:

1

Jika rentetan tidak menggunakan pembatas, ia tidak akan dikendalikan oleh fungsi explode() atau preg_split(). Pada masa ini, rentetan perlu diubah suai dan pembatas yang sesuai ditambah.

2. Penggunaan semula pemisah

Jika terdapat berbilang pemisah yang sama, anda perlu menggunakan ungkapan biasa untuk menentukan kedudukan pemisah atau menggunakan fungsi preg_split() untuk pemprosesan.

3. Format rentetan tidak diseragamkan

Jika terdapat ruang atau aksara khas lain dalam rentetan, ia adalah mudah untuk menyebabkan ralat apabila menggunakan pembatas untuk memisahkan. Pada masa ini, anda perlu mempraproses rentetan atau menggunakan peraturan ungkapan biasa yang lebih fleksibel untuk memisahkan rentetan.

4. Jenis data tidak konsisten

Apabila mendapatkan data khusus dalam tatasusunan dua dimensi, ralat cenderung berlaku kerana jenis data setiap elemen mungkin tidak konsisten. Pada masa ini, anda boleh menggunakan kaedah penghuraian data yang dinyatakan di atas atau melakukan penukaran jenis untuk memastikan data yang diperlukan diperoleh dengan betul.

Ringkasan:

Artikel ini memperkenalkan kaedah dan kesilapan biasa untuk menukar rentetan kepada tatasusunan dua dimensi, yang sangat penting untuk pemprosesan data dalam pengaturcaraan PHP. Melalui penukaran dan analisis data, data yang diperlukan boleh diekstrak daripada rentetan yang kompleks. Dalam proses pengaturcaraan sebenar, masih perlu memilih kaedah dan teknik yang sesuai mengikut situasi sebenar, memproses data, dan memastikan kebolehbacaan dan kebolehselenggaraan kod.

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!

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