php是一个非常流行的编程语言,它支持面向对象编程(oop),同时也支持数组操作。在php中,我们有时需要将一个对象数组转换成一个普通的数组。这篇文章将介绍如何在php中将对象数组转成数组。
使用json_decode函数php中有一个非常方便的函数可以将json格式的字符串转化成php数组:json_decode。
对象数组可以被编码成json格式的字符串。因此,我们可以先将对象数组编码成json字符串,再使用json_decode函数将其转换为php数组。下面是一个例子:
<?phpclass person { public $name; public $age; public $gender;}// 创建对象数组$persons = [];$person1 = new person();$person1->name = 张三;$person1->age = 20;$person1->gender = 男;$persons[] = $person1;$person2 = new person();$person2->name = 李四;$person2->age = 22;$person2->gender = 男;$persons[] = $person2;// 将对象数组编码成json字符串$json_str = json_encode($persons);// 将json字符串解码成php数组$person_arr = json_decode($json_str, true);print_r($person_arr);?>
这将输出以下结果:
array( [0] => array ( [name] => 张三 [age] => 20 [gender] => 男 ) [1] => array ( [name] => 李四 [age] => 22 [gender] => 男 ))
使用serializable接口另一种将对象数组转换成数组的方法是实现serializable接口。这种方式需要在类中自定义方法,将该类的对象数组转换为可序列化的字符串。下面是一个示例:
<?phpclass person implements serializable { public $name; public $age; public $gender; // 实现serializable接口的方法 public function serialize() { return serialize([$this->name, $this->age, $this->gender]); } // 实现serializable接口的方法 public function unserialize($serialized) { [$this->name, $this->age, $this->gender] = unserialize($serialized); }}// 创建对象数组$persons = [];$person1 = new person();$person1->name = 张三;$person1->age = 20;$person1->gender = 男;$persons[] = $person1;$person2 = new person();$person2->name = 李四;$person2->age = 22;$person2->gender = 男;$persons[] = $person2;// 将对象数组编码成可序列化的字符串$serialized_str = serialize($persons);// 将序列化的字符串转换为php数组$person_arr = unserialize($serialized_str);print_r($person_arr);?>
这将输出以下结果:
array( [0] => person object ( [name] => 张三 [age] => 20 [gender] => 男 ) [1] => person object ( [name] => 李四 [age] => 22 [gender] => 男 ))
总结
本文介绍了两种将对象数组转换成数组的方法:使用json_decode函数和实现serializable接口。开发者可以根据自己的需求选择不同的实现方法。切记在使用第二种方法时,需要让对象类实现serializable接口。
以上就是php怎么将对象数组转成数组的详细内容。
