Beste,

bij een api van mijn provider krijg ik een array terug die er zo uitziet (print_r($variable);):



Array
(
[0] => Transip_Vps Object
(
[name] => naam-vps
[description] =>
[operatingSystem] => centos7
[diskSize] => 157286400
[memorySize] => 4194304
[cpus] => 2
[status] => running
[ipAddress] => 00.00.00.00
[macAddress] => 00:00:00:00:00:00
[vncHostname] => Deprecated
[vncPortNumber] => Deprecated
[vncPassword] => Deprecated
[isBlocked] =>
[isCustomerLocked] =>
)

)


Het lukt me maar niet om daar een enkele value uit te krijgen. Heb al veel geprobeerd, maar ziet het niet.
Enig idee?
Wat heb je al geprobeerd?


<?php

echo $array['0']['name'];

?>



Zou volgens mij moeten werken.
<?php
echo $array[0]['name'];
?>
Of mogelijk:
<?php
echo $array[0]->name;
?>
Het is al even geleden.
Ik heb het bovenstaande al geprobeerd, maar werkt niet.
<?php

echo $variable[0]->name;

?>
Had je de tweede suggestie ook al geprobeerd (en dus ook die van Ozzie)? Dat zou resultaat moeten geven.
Probeer eens <?php var_dump($variable); ?>

Geef daar de resultaten eens van.
Op index 0 van het array bevindt zich een Transip_Vps object. Hier zul je (inderdaad) de object-blikopener voor moeten gebruiken :).
Ozzie zijn manier heeft dan toch gewerkt.

Bedankt!
Steven Michiels op 09/08/2017 19:49:48

Ozzie zijn manier heeft dan toch gewerkt.

Bedankt!


Om maar gelijk verder advies te geven:
Je roept nu d.m.v. ozzies manier, een directie manier aan: "echo $variable[0]->name;"

TransIP geeft een OBJECT terug, dat verklaart waarom Ozzie's manier werkt.
Echter is het nu zo, dat als je NOG een VPS hebt.. je 2 objecten terug krijgt..en je tweede VPS ga je dus niet zien, tenzij je het ook rechtstreeks benaderd: echo $variable[1]->name;

Het is daarom ook beter om het Object in een foreach te zetten:

<?php
foreach($TransIP_Object as $t){
 echo $t->name;
}
?>


Mocht je nu een tweede VPS hebben, dan loopt het script beide objecten door en krijg je van beide de correcte data terug :)

Reageren