Unique dimensions des tableaux
Pour la conversion de tableaux unidimensionnels, vous pouvez le convertir en utilisant (array)
ou get_object_vars
, dont Benoit mentionné dans
sa réponse.
// Cast to an array
$array = (array) $object;
// get_object_vars
$array = get_object_vars($object);
Ils fonctionnent un peu différents les uns des autres. Par exemple, get_object_vars
retournera un tableau avec seulement accessible au public des propriétés, sauf si elle est appelée à partir de l'intérieur de la portée de l'objet que vous êtes en passant (c'est à dire dans une fonction de membre de l'objet). (array)
, d'autre part, sera jeté sur un tableau avec tous les publics, privés et protégés membres intacts sur le tableau, bien que, bien public, bien sûr.
Multi-dimensions des tableaux
Un peu sale méthode est l'utilisation de PHP >= 5.2 natif du JSON fonctions pour encoder en JSON et décoder ensuite retour à un tableau. Ce ne sera pas inclure des membres privés et protégés, cependant.
// The second parameter of json_decode forces parsing into an associative array
$array = json_decode(json_encode($object), true);
Sinon, la fonction suivante va convertir à partir d'un objet d'un tableau y compris les membres privés et protégés, prises à partir d' ici et modifié pour utiliser la conversion:
function objectToArray ($object) {
if(!is_object($object) && !is_array($object))
return $object;
return array_map('objectToArray', (array) $object);
}