Maison >développement back-end >Problème PHP >Comment convertir une classe standard php en tableau

Comment convertir une classe standard php en tableau

藏色散人
藏色散人original
2020-09-12 09:49:204259parcourir

Comment convertir php stdclass en tableau : 1. Utilisez la méthode "object_array" pour convertir un objet stdClass en tableau ; 2. Convertissez via la fonction "json_decode" ; 3. Utilisez la méthode "object2array_pre" pour convertir.

Comment convertir une classe standard php en tableau

Recommandé : "Tutoriel vidéo PHP"

Comment convertir un objet stdClass en tableau dans la méthode PHP

Json est généralement utilisé pour communiquer entre PHP et JS, mais le tableau passé par json n'est pas un tableau standard, mais de type stdClass. Nous pouvons ensuite nous référer aux méthodes de conversion suivantes.

Méthode 1 :

//PHP stdClass Object转array  
function object_array($array) {  
    if(is_object($array)) {  
        $array = (array)$array;  
     } if(is_array($array)) {  
         foreach($array as $key=>$value) {  
             $array[$key] = object_array($value);  
             }  
     }  
     return $array;  
}

Méthode 2 :

$array = json_decode(json_encode(simplexml_load_string($xmlString)),TRUE);

Méthode 3 :

function object2array_pre(&$object) {
        if (is_object($object)) {
            $arr = (array)($object);
        } else {
            $arr = &$object;
        }
        if (is_array($arr)) {
            foreach($arr as $varName => $varValue){
                $arr[$varName] = $this->object2array($varValue);
            }
        }
        return $arr;
    }

Si le volume de données est de 10 W, l'exécution prendra 1 s, structure Si c'est plus compliqué, cela peut atteindre 3s. Les performances sont trop mauvaises

peut être remplacée par ce qui suit :

function object2array(&$object) {
             $object =  json_decode( json_encode( $object),true);
             return  $object;
    }

Cependant, pour les caractéristiques de json, cela ne peut être que pour. utf8, sinon il doit d'abord être transcodé.

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