Maison  >  Article  >  développement back-end  >  php+ convertir l'objet en tableau d'objets de tableau de chaînes

php+ convertir l'objet en tableau d'objets de tableau de chaînes

王林
王林original
2023-05-07 20:09:07401parcourir

En PHP, il est souvent nécessaire de convertir certaines données complexes en un tableau de chaînes ou un tableau d'objets pour une utilisation facile dans différents scénarios. Cet article présentera quelques techniques sur la façon d'utiliser PHP pour convertir des objets en tableaux de chaînes, convertir des tableaux de chaînes en tableaux d'objets et convertir des tableaux d'objets en tableaux de chaînes.

  1. Convertir un objet en tableau de chaînes

En PHP, nous pouvons utiliser la fonction intégrée get_object_vars() pour obtenir les valeurs d'attribut de l'objet et le stocker dans un tableau. L'exemple de code est le suivant : get_object_vars()来获取对象的属性值,并将其存储到一个数组中。代码示例如下:

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person = new Person('Tom', 20);
$arr = get_object_vars($person);
var_dump($arr);

执行以上代码,输出结果为:

array(2) { ["name"]=> string(3) "Tom" ["age"]=> int(20) }
  1. 将字符串数组转换为对象数组

当我们有一组字符串数组需要转换成对象数组时,我们可以使用内置函数json_decode()来实现。前提是所要转换的字符串数组必须符合JSON格式。代码示例如下:

$jsonStr = '[{"name":"Tom","age":20},{"name":"Jerry","age":21}]';
$arr = json_decode($jsonStr);
var_dump($arr);

以上代码执行结果:

array(2) {
  [0]=>
  object(stdClass)#1 (2) {
    ["name"]=>
    string(3) "Tom"
    ["age"]=>
    int(20)
  }
  [1]=>
  object(stdClass)#2 (2) {
    ["name"]=>
    string(5) "Jerry"
    ["age"]=>
    int(21)
  }
}

从结果中可以看出,我们成功将字符串数组转换成对象数组了。

  1. 将对象数组转换为字符串数组

当我们需要将对象数组转换成字符串数组时,我们可以使用serialize()函数来实现。其可以将对象数组序列化成一个字符串,并且可以通过unserialize()

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$persons = array(new Person('Tom', 20), new Person('Jerry', 21));
$str = serialize($persons);
$arr = unserialize($str);
var_dump($arr);
Exécutez le code ci-dessus, le résultat de sortie est :

array(2) {
  [0]=>
  object(Person)#1 (2) {
    ["name"]=>
    string(3) "Tom"
    ["age"]=>
    int(20)
  }
  [1]=>
  object(Person)#2 (2) {
    ["name"]=>
    string(5) "Jerry"
    ["age"]=>
    int(21)
  }
}
    Convertir un tableau de chaînes en tableau d'objets

    Lorsque nous avons un ensemble de tableaux de chaînes qui ont besoin pour être converti en tableaux d'objets, nous pouvons utiliser la fonction intégrée json_decode() pour y parvenir. Le principe est que le tableau de chaînes à convertir doit être conforme au format JSON. L'exemple de code est le suivant :

    rrreee

    Le résultat de l'exécution du code ci-dessus :

    rrreee🎜Comme le montrent les résultats, nous avons réussi à convertir le tableau de chaînes en un tableau d'objets. 🎜
      🎜Convertir un tableau d'objets en tableau de chaînes🎜🎜🎜Lorsque nous devons convertir un tableau d'objets en tableau de chaînes, nous pouvons utiliser la fonction serialize() pour y parvenir . Il peut sérialiser un tableau d'objets en une chaîne et restaurer la chaîne sérialisée dans le tableau d'objets d'origine via la fonction unserialize(). 🎜🎜Ce qui suit est un exemple de code : 🎜rrreee🎜Le résultat de l'exécution du code ci-dessus : 🎜rrreee🎜Grâce à l'exemple de code ci-dessus, nous avons réussi à convertir le tableau d'objets en un tableau de chaînes. 🎜🎜Cet article présente les méthodes de conversion d'objets en tableaux de chaînes, de conversion de tableaux de chaînes en tableaux d'objets et de conversion de tableaux d'objets en tableaux de chaînes en PHP à travers trois exemples. Grâce à ces techniques, nous pouvons convertir et traiter les données plus facilement dans le développement PHP. 🎜

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn