Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar rentetan kepada tatasusunan objek dalam php

Bagaimana untuk menukar rentetan kepada tatasusunan objek dalam php

PHPz
PHPzasal
2023-04-20 10:11:33545semak imbas

Dalam PHP, rentetan dan tatasusunan ialah jenis data biasa. Dalam sesetengah kes, kita perlu menukar rentetan kepada tatasusunan objek untuk pemprosesan data yang lebih baik. Berikut ialah beberapa kod sampel untuk membantu anda membuat penukaran ini.

Mula-mula, mari lihat cara menukar rentetan kepada tatasusunan bersekutu. Kita boleh mencapai ini menggunakan fungsi rentetan explode() dan foreach gelung.

Andaikan kita mempunyai rentetan dipisahkan koma dengan setiap medan sepadan dengan pasangan nilai kunci seperti yang ditunjukkan di bawah:

$str = "name:John,age:30,city:New York";

Sekarang kita akan menggunakan kod berikut untuk menukarnya kepada tatasusunan Bersekutu:

$array = array();
$tmp = explode(",",$str);
foreach ($tmp as $value) {
  list($key,$val) = explode(":",$value);
  $array[$key] = $val;
}

Dalam kod di atas, kami mula-mula membahagi rentetan kepada beberapa medan menggunakan fungsi explode(). Kami kemudian membahagikan setiap medan sekali lagi melalui gelung foreach untuk mendapatkan kunci dan nilai. Akhir sekali, kami memasukkan pasangan nilai kunci ini ke dalam tatasusunan bersekutu baharu.

Sekarang mari kita beralih kepada contoh menukar rentetan kepada tatasusunan objek. Kita boleh mentakrifkan objek tersuai dan menggunakan fungsi json_decode() untuk menukar rentetan kepada objek.

Andaikan kita mempunyai rentetan JSON yang mengandungi maklumat tiga pelajar seperti yang ditunjukkan di bawah:

$str = '[{"name":"John","age":18},{"name":"Mary","age":19},{"name":"Tom","age":20}]';

Sekarang kita akan menukarnya kepada tatasusunan objek menggunakan kod berikut:

class Student {
  public $name;
  public $age;
}

$array = json_decode($str);
$result = array();

foreach ($array as $obj) {
  $stu = new Student();
  $stu->name = $obj->name;
  $stu->age = $obj->age;
  $result[] = $stu;
}

Dalam kod di atas, kami mula-mula mentakrifkan kelas Student dan mentakrifkan dua atribut public untuk mewakili nama dan umur setiap pelajar.

Kemudian, kami menggunakan fungsi json_decode() untuk menukar rentetan JSON kepada objek PHP. Seterusnya, kami mengulangi setiap objek menggunakan gelung foreach, mencipta tika Student baharu untuk setiap objek dan menetapkan sifatnya kepada sifat objek. Akhir sekali, kami memasukkan setiap objek pelajar ke dalam tatasusunan baharu.

Ringkasnya, menukar rentetan kepada tatasusunan objek ialah teknik praktikal yang boleh membantu kami memproses dan mengurus data dengan lebih baik. Menggunakan kod contoh di atas, anda boleh menukar rentetan dengan mudah kepada tatasusunan bersekutu atau tatasusunan objek untuk disesuaikan dengan senario yang berbeza.

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