En PHP, les tableaux et les objets sont deux formes différentes, mais nous devons souvent effectuer une conversion entre eux. Cet article explique comment convertir un tableau en tableau d'objets et reconvertir un tableau d'objets en tableau normal en PHP.
Tout d’abord, voyons comment convertir un tableau normal en tableau d’objets. En PHP, nous pouvons y parvenir en utilisant le casting (transformer un tableau en un objet) ou en créant manuellement un objet. Ce qui suit est une démonstration des deux méthodes :
Méthode 1 : Casting
$arr = array('id'=>1, 'name'=>'John', 'age'=>25); $obj = (object)$arr; print_r($obj);
Sortie :
stdClass Object ( [id] => 1 [name] => John [age] => 25 )
Dans le code ci-dessus, nous utilisons l'opérateur(object)
pour convertir le tableau en objet . Cet opérateur est en fait un transtypage qui convertit une valeur scalaire, un tableau ou une ressource en objet. Maintenant,$obj
est un objet et nous pouvons accéder à ses propriétés comme un objet normal.(object)
运算符将数组转换为对象。这个运算符实际上是一种强制类型转换,它可以将一个标量值、数组或资源转换为一个对象。现在$obj
是一个对象,我们可以像使用普通对象一样访问它的属性。
方法二:手动创建对象
$arr = array('id'=>1, 'name'=>'John', 'age'=>25); $obj = new stdClass(); foreach ($arr as $key=>$value) { $obj->$key = $value; } print_r($obj);
输出:
stdClass Object ( [id] => 1 [name] => John [age] => 25 )
在上面的代码中,我们手动创建了一个空的对象$obj
,然后使用循环遍历数组,并将数组的每个键值对作为对象的属性赋值。现在$obj
是一个含有三个属性的对象。
接下来,让我们看一下如何将对象数组转换为普通数组。在PHP中,我们可以使用强制类型转换(将对象强制转换为数组)或手动遍历对象数组来实现这一目标。下面是两种方法的演示:
方法一:强制类型转换
$obj1 = new stdClass(); $obj1->id = 1; $obj1->name = 'John'; $obj1->age = 25; $obj2 = new stdClass(); $obj2->id = 2; $obj2->name = 'Jane'; $obj2->age = 30; $arr = array($obj1, $obj2); $arr = (array)$arr; print_r($arr);
输出:
Array ( [0] => stdClass Object ( [id] => 1 [name] => John [age] => 25 ) [1] => stdClass Object ( [id] => 2 [name] => Jane [age] => 30 ) )
在上面的代码中,我们使用了(array)
运算符将对象数组转换为普通数组。这个运算符实际上是一种强制类型转换,它可以将一个对象转换为一个数组。现在$arr
是一个普通数组,我们可以像使用普通数组一样访问它的元素。
方法二:手动遍历对象数组
$obj1 = new stdClass(); $obj1->id = 1; $obj1->name = 'John'; $obj1->age = 25; $obj2 = new stdClass(); $obj2->id = 2; $obj2->name = 'Jane'; $obj2->age = 30; $arr = array($obj1, $obj2); $new_arr = array(); foreach ($arr as $obj) { $new_arr[] = (array)$obj; } print_r($new_arr);
输出:
Array ( [0] => Array ( [id] => 1 [name] => John [age] => 25 ) [1] => Array ( [id] => 2 [name] => Jane [age] => 30 ) )
在上面的代码中,我们遍历对象数组$arr
,并将每个对象强制转换为一个数组,然后将其添加到新数组$new_arr
中。现在$new_arr
rrreee
Sortie :rrreee
Dans le code ci-dessus, nous avons créé manuellement un objet vide$obj
, puis utilisé une boucle pour parcourir le tableau et convertir le tableau Chaque paire clé-valeur se voit attribuer une valeur en tant que propriété de l'objet. Maintenant,
$obj
est un objet avec trois propriétés. Ensuite, voyons comment convertir un tableau d'objets en un tableau normal. En PHP, nous pouvons y parvenir en utilisant le casting (convertir un objet en un tableau) ou en itérant manuellement sur un tableau d'objets. Ce qui suit est une démonstration des deux méthodes : Méthode 1 : Casting rrreeeSortie : rrreeeDans le code ci-dessus, nous utilisons l'opérateur
(array)
pour convertir le tableau d'objets en Ordinaire. tableau. Cet opérateur est en fait un transtypage qui convertit un objet en tableau. Maintenant,
$arr
est un tableau normal et nous pouvons accéder à ses éléments comme un tableau normal. Méthode 2 : Parcourez manuellement le tableau d'objets rrreeeSortie : rrreeeDans le code ci-dessus, nous parcourons le tableau d'objets
$arr
et convertissons chaque objet en un tableau, puis il est ajouté au nouveau tableau
$new_arr
. Maintenant,
$new_arr
est un tableau normal avec deux éléments, chaque élément est un tableau associatif contenant trois paires clé-valeur. RésuméEn PHP, nous pouvons convertir entre des tableaux et des objets à l'aide de transtypages ou de parcours manuel. Quelle que soit la méthode que vous choisissez, tant que vous comprenez la différence entre les tableaux et les objets, vous pouvez facilement convertir. Dans le développement actuel, cette capacité est très courante, car nous devons parfois convertir des tableaux en objets afin de mieux les utiliser.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!