本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
在PHP中,可以利用get_object_vars()函数和array_values()函数来将对象转为索引数组。
实现步骤:
步骤1:利用get_object_vars()函数将对象转为关联数组
php中把对象转为数组的函数是“get_object_vars()”。
get_object_vars()函数用于获取给定对象的属性,并返回由对象属性组成的关联数组。但如果对象没有属性,则返回 NULL。
语法:
get_object_vars($object)
返回由 obj 指定的对象中定义的属性组成的关联数组。
注意:
在 PHP 4.2.0 之前的版本中,如果在 obj 对象实例中声明的变量没有被赋值,则它们将不会在返回的数组中。而在 PHP 4.2.0 之后,这些变量作为键名将被赋予 null 值。
示例:
<?php
class gfg {
public $geeks = 0.02;
public $for = 1;
public $Geeks = "php";
public $GEEKS;
public $e;
}
$example = new gfg;
$arr=get_object_vars($example);
var_dump($arr);
?>
可以看到,get_object_vars()函数会将对象转为关联数组。
步骤2:利用array_values()函数将关联数组转为索引数组
array_values() 函数可以获取数组中所有元素的值,返回包含数组中所有的值的数组。(被返回的数组将使用数值键,从 0 开始且以 1 递增。)
该函数语法格式如下:
array_values($array)
参数 array 为被操作的数组。
array_values() 函数的作用是返回数组中所有元素的值,使用起来非常简单,只有一个必选参数,就可以返回一个包含给定数组中所有值的数组,但不保留键名。被返回的数组将使用索引数组的形式,数组的索引从 0 开始且以 1 递增。
示例:将步骤1获得的关联数组转为索引数组
array_values($arr)
注:array_values() 函数仅适用于一维数组,对于多维数组中第一维度以外的维度没有效果。
但可通过访问多维数组中数组来获取值:
<?php
header("Content-type:text/html;charset=utf-8");
$arr = array(1,2,3,"aa"=>array(4,5,6),7,8,array(9,10));
echo "原关联数组:";
var_dump($arr);
$res=array_values($arr["aa"]);
echo "转换后的数组:";
var_dump($res);
?>