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

Bagaimana untuk menukar rentetan tatasusunan kepada tatasusunan dalam php

PHPz
PHPzasal
2023-04-27 09:08:22848semak imbas

Dalam PHP, kita boleh menggunakan beberapa fungsi atau kaedah untuk menukar tatasusunan dalam format rentetan kepada pembolehubah tatasusunan sebenar dengan mudah. Dalam artikel ini, kami akan memperkenalkan beberapa kaedah dan fungsi yang biasa digunakan.

  1. Gunakan fungsi eval
    Gunakan fungsi terbina dalam PHP eval() untuk melaksanakan rentetan sebagai kod boleh laku, jadi anda boleh menggunakan fungsi eval untuk menukar tatasusunan dalam format rentetan menjadi tatasusunan sebenar.

Contohnya:

$str = "[1,2,3]";
$array = eval("return $str;");
print_r($array);

Dalam contoh di atas, kami menetapkan tatasusunan "[1,2,3]" yang mengandungi 3 elemen kepada pembolehubah rentetan $str, Kemudian gunakan eval () untuk melaksanakan pembolehubah rentetan sebagai kod boleh laku, dan akhirnya mendapatkan tatasusunan sebenar $array Anda boleh menggunakan fungsi print_r() untuk mencetak hasilnya adalah seperti berikut:

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

Walaupun eval(. ) fungsi boleh Sangat mudah untuk menukar rentetan tatasusunan kepada tatasusunan, tetapi ia juga membawa risiko keselamatan tertentu kerana ia boleh melaksanakan kod sewenang-wenangnya, termasuk kod berniat jahat, jadi eval() tidak disyorkan.

  1. Gunakan fungsi json_decode
    Dalam PHP, kita juga boleh menggunakan fungsi json_decode() untuk menukar tatasusunan dalam format rentetan kepada pembolehubah tatasusunan sebenar.

Contohnya:

$str = "[1,2,3]";
$array = json_decode($str);
print_r($array);

Dalam contoh di atas, kami menggunakan fungsi json_decode() untuk menukar pembolehubah rentetan $str ke dalam pembolehubah tatasusunan $array, dan akhirnya mendapat yang sebenar tatasusunan, Anda boleh menggunakan fungsi print_r() untuk mencetak keputusan adalah seperti berikut:

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

fungsi json_decode() juga mempunyai parameter pilihan $assoc Apabila parameter $assoc ditetapkan kepada benar. tatasusunan yang dikembalikan akan menjadi tatasusunan indeks bukan angka. Contohnya:

$str = '{"name":"Tom","age":18}';
$array = json_decode($str,true);
print_r($array);

Dalam contoh di atas, kami menukar rentetan JSON "$str" yang mengandungi dua pasangan nilai kunci "nama" dan "umur" kepada tatasusunan bersekutu "$array". berikut :

Array
(
    [name] => Tom
    [age] => 18
)

Oleh itu, jika anda perlu menukar tatasusunan dalam format rentetan kepada tatasusunan bersekutu, anda boleh menetapkan parameter $assoc kepada benar.

  1. Gunakan fungsi explode
    Gunakan fungsi PHP terbina dalam explode() untuk memisahkan rentetan yang dipisahkan oleh pembatas tertentu kepada tatasusunan.

Contohnya:

$str = "1,2,3";
$array = explode(",", $str);
print_r($array);

Dalam contoh di atas, kami menukar rentetan dipisahkan koma "1,2,3" kepada tatasusunan, menggunakan fungsi explode() kepada The koma digunakan sebagai pembatas untuk membelah, dan akhirnya tatasusunan sebenar diperolehi Fungsi print_r() boleh digunakan untuk mencetak hasilnya adalah seperti berikut:

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

Perlu diingat bahawa menggunakan. fungsi explode() hanya terpakai apabila pembatas adalah Dalam kes nilai tetap, jika pembatas tidak tetap atau tatasusunan berbilang dimensi perlu dihuraikan, kaedah lain perlu digunakan.

Ringkasnya, tiga kaedah di atas boleh digunakan untuk menukar tatasusunan dalam format rentetan kepada pembolehubah tatasusunan sebenar. Dalam penggunaan sebenar, kita perlu memilih kaedah yang sesuai mengikut situasi tertentu. Apabila format rentetan tatasusunan agak piawai dan tidak akan tertakluk kepada serangan keselamatan, sebaiknya gunakan fungsi json_decode() apabila format rentetan tatasusunan agak bebas atau apabila tatasusunan berbilang dimensi perlu dihuraikan , kaedah lain boleh digunakan.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan tatasusunan kepada tatasusunan dalam php. 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