En faisant 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 ne fonctionne pas à cause de l'objet stdClass
echo $array['id'];
Pour accéder à un membre du tableau, utilisez $array['KEY'];
Pour accéder à un membre d'objet, vous utilisez $obj->KEY;
Pour accéder à un membre d'objet dans un tableau d'objets:$array[0]
// Récupère le premier objet du tableau$array[0]->KEY
// puis accédez à sa clé
Vous pouvez aussi faire une boucle sur un tableau d'objets comme ceci:
foreach ($arrayOfObjs as $key => $object) {
echo $object->object_property;
}
Pensez à un tableau comme une collection de choses. C'est un sac dans lequel vous pouvez stocker vos documents, leur attribuer un identifiant unique (clé) et y accéder (ou les extraire du sac) à l'aide de cette clé. Je veux que les choses restent simples ici, mais ce sac peut contenir d'autres sacs aussi :)
Un tableau contient les paires 'key
' et 'value
'. La fourniture d'une clé pour un membre du groupe est facultative. Dans ce cas, une clé numérique lui est automatiquement attribuée. Elle commence par 0 et continue à être incrémentée de 1 pour chaque membre supplémentaire. Nous pouvons récupérer une 'valeur' du tableau par 'key
'.
Nous pouvons donc définir un tableau des manières suivantes (en ce qui concerne les clés):
$colorPallete = ['red', 'blue', 'green'];
Le tableau ci-dessus se verra attribuer des touches numériques automatiquement. La touche affectée au rouge sera donc 0, pour le bleu 1 et ainsi de suite.
$colorPallete[0]; // will output 'red'
$colorPallete[1]; // will output 'blue'
$colorPallete[2]; // will output 'green'
$colorPallete = ['love' => 'red', 'trust' => 'blue', 'envy' => 'green']; // we expliicitely define the keys ourself.
$colorPallete['love']; // will output 'red'
$colorPallete['trust']; // will output 'blue'
$colorPallete['envy']; // will output 'green'
Essayez ceci, fonctionne bien -
$array = json_decode(json_encode($array), true);
Essaye ça:
echo $array[0]->id;
Vous avez un tableau. Un tableau PHP est en gros une "liste de choses". Votre tableau contient 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 faites référence à la chose par son index dans le tableau.
var_dump( $array[0]->id );
Ou, si vous n'êtes pas sûr du nombre d'éléments contenus dans le tableau, passez en boucle sur le tableau.
foreach($array as $key=>$value)
{
var_dump($value->id);
var_dump($array[$key]->id);
}
Que diriez-vous 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 );