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:
- Comment puis-je accéder à un tableau/objet? 4 réponses
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'];
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'
Essayer cela, fonctionne très bien -
$array = json_decode(json_encode($array), true);
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);
}
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 );