Comment convertir efficacement un objet PHP stdClass en tableau ?

DDD
Libérer: 2024-11-20 12:10:10
original
213 Les gens l'ont consulté

How to Efficiently Convert a PHP stdClass Object to an Array?

Conversion d'un stdClass en tableau en PHP

Question :

J'ai besoin de convertir un objet PHP stdClass en tableau . Cependant, les tentatives utilisant le casting (array), json_decode(true) et json_decode() ont abouti à un tableau vide. Comment puis-je effectuer cette conversion efficacement ?

Réponse :

Méthode Lazy One-Liner

Pour des performances légèrement compromises, vous pouvez exploiter le JSON méthodes pour réaliser cette conversion de manière concise :

$array = json_decode(json_encode($booking), true);
Copier après la connexion
Copier après la connexion

Cette méthode encode d'abord l'objet dans une chaîne JSON, puis le décode à nouveau en un tableau.

Conversion de stdClass en Array

$array = (array) json_decode(json_encode($booking));
Copier après la connexion

Cette approche renvoie un tableau indexé sans conserver les noms de propriété.

Conversion de stdClass en tableau associatif

$array = json_decode(json_encode($booking), true);
Copier après la connexion
Copier après la connexion

En passant true comme deuxième argument à json_decode, vous pouvez convertissez l'objet en un tableau associatif, en préservant les noms de propriétés.

Fonction personnalisée (récursive)

Si les performances sont critiques, vous pouvez implémenter une fonction récursive personnalisée pour convertir l'objet en tableau :

function object_to_array($object) {
  if (is_object($object)) {
    $object = get_object_vars($object);
  }

  if (is_array($object)) {
    return array_map(__FUNCTION__, $object);
  } else {
    return $object;
  }
}

$array = object_to_array($booking);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal