Comment accéder à une propriété d'un objet (Objet stdClass) membre/élément d'un tableau? [dupliquer]

cette question a déjà une réponse ici:

Faire print_r() sur mon tableau, j'obtiens ce qui suit:

Array ( 
    [0] => 
        stdClass Object 
        ( 
            [id] => 25 
            [time] => 2014-01-16 16:35:17 
            [fname] => 4 
            [text] => 5 
            [url] => 6 
        ) 
)

Comment puis-je accéder à une valeur spécifique dans le tableau? Le code suivant n'est pas travail à cause de l'objet stdClass

echo $array['id'];
34
demandé sur Solace 2014-01-16 21:14:24

5 réponses

pour accéder à un membre array vous utilisez $array['KEY'];

pour accéder à un membre objet vous utilisez $obj->KEY;

pour accéder à un membre d'objet à l'intérieur d'un tableau d'objets:

$array[0] // obtenir le premier objet dans le tableau

$array[0]->KEY // puis accéder à sa clé

vous pouvez également boucler un tableau d'objets comme so:

foreach ($arrayOfObjs as $key => $object) {
    echo $object->object_property;
}

penser d'un tableau, comme une collection de choses. C'est un sac où vous pouvez stocker vos affaires et leur donner un id unique (clé) et d'y accéder (ou prendre les choses hors du sac) en utilisant cette clé. Je veux garder les choses simples ici, mais ce sac peut contenir d'autres sacs trop :)

mise à Jour (cela peut aider quelqu'un à mieux comprendre):

Un tableau contient", 151990920" " et " value ' paires. Fournir une clé pour un membre de tableau est optionnel et dans ce cas, il est automatiquement assignée une clé numérique qui commence par 0 et continue à incrémenter de 1 pour chaque membre supplémentaire. Nous pouvons récupérer une' valeur ' à partir du tableau par ' key '.

ainsi nous pouvons définir un tableau de la manière suivante (en ce qui concerne les clés):

première méthode:

$colorPallete = ['red', 'blue', 'green'];

le tableau ci-dessus se verra attribuer automatiquement des clés numériques. Donc la clé assignée au rouge sera 0, pour le bleu 1 et ainsi de suite.

obtenir des valeurs à partir du tableau ci-dessus:

$colorPallete[0]; // will output 'red'
$colorPallete[1]; // will output 'blue'
$colorPallete[2]; // will output 'green'

deuxième méthode:

$colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself.

obtenir des valeurs à partir du tableau ci-dessus:

$colorPallete['love']; // will output 'red'
$colorPallete['trust']; // will output 'blue'
$colorPallete['envy']; // will output 'green'
65
répondu Lucky Soni 2015-07-01 16:30:21

Essayer cela, fonctionne très bien -

$array = json_decode(json_encode($array), true);
14
répondu Rohit Suthar 2015-06-10 09:40:13

essayez ceci:

echo $array[0]->id;
9
répondu giordanolima 2014-01-16 17:17:11

vous avez un tableau. Un tableau PHP est essentiellement une"liste de choses". Votre tableau est une chose. Cette chose est une classe standard. Vous devez soit supprimer la chose de votre tableau

$object = array_shift($array);
var_dump($object->id);

ou se référer à la chose par son index dans le tableau.

var_dump( $array[0]->id );

ou, si vous n'êtes pas sûr de combien de choses sont dans le tableau, boucle sur le tableau

foreach($array as $key=>$value)
{
    var_dump($value->id);
    var_dump($array[$key]->id);
}
3
répondu Alan Storm 2014-01-16 17:20:38

Que dirais-tu de quelque chose comme ça.

function objectToArray( $object ){
   if( !is_object( $object ) && !is_array( $object ) ){
    return $object;
 }
if( is_object( $object ) ){
    $object = get_object_vars( $object );
}
    return array_map( 'objectToArray', $object );
}

et appelez cette fonction avec votre objet

$array = objectToArray( $yourObject );

référence

0
répondu Nomi 2016-03-05 18:24:31