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 :
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);
Cette méthode encode d'abord l'objet dans une chaîne JSON, puis le décode à nouveau en un tableau.
$array = (array) json_decode(json_encode($booking));
Cette approche renvoie un tableau indexé sans conserver les noms de propriété.
$array = json_decode(json_encode($booking), true);
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.
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);
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!