About
Pricing
Community
Teams
Start Free Trial
Log in
error77
asked on
3/7/2011
Reading an array
Hi all,
I am doing a var_dump on a variable and it's returning the following:
var_dump($theArrayVar);
THis returns:
object(stdClass)#2 (13) { ["id"]=> string(15) "1233434333" ["name"]=> string(21) "the name" ["first_name"]=> string(6) "the" ["last_name"]=> string(14) "name name" ["link"]=> string(54) "http://www.mysite.com/profile.php?id=1233434333" ["hometown"]=> object(stdClass)#3 (2) { ["id"]=> string(15) "1233434333" ["name"]=> string(23) "Los Angeles, California" } ["location"]=> object(stdClass)#4 (2) { ["id"]=> string(15) "1233434333" ["name"]=> string(16) "Honolulu, Hawaii" } ["bio"]=> string(12) "I like Music" ["gender"]=> string(4) "male" ["locale"]=> string(5) "en_GB" ["languages"]=> array(1) { [0]=> object(stdClass)#5 (2) { ["id"]=> string(15) "1233434333" ["name"]=> string(7) "English" } } ["verified"]=> bool(true) ["updated_time"]=> string(24) "2011-03-07T15:12:51+0000"
}
I am trying to read it this way:
echo theArrayVar[0];
echo theArrayVar[1];
etc...
but it's not working ... anyone going any ideas of why/what I'm doing wrong please?
Thanks
PHP
5
1
Last Comment
Beverley Portlock
8/22/2022 - Mon
Beverley Portlock
3/7/2011
Two things. First
echo theArrayVar[0];
will never work because the variable name needs a $
echo $theArrayVar[0];
Secondly - look at the dump and you will see that the elements have names like 'id' or 'name' and not 0, 1, 2, etc. This leaves you with two options:
1: Use
foreach
to read the array
foreach( $theArrayVar as $key => value )
echo "\$theArrayVar['$key'] has value $value<br/>";
2. Use array_values to build a new array numbered from 0 upwards
$newArray = array_values( $theArrayVar );
echo $newArray[0];
echo $newArray[1];
I advise you to master
foreach
because it is so very, very useful.
http://www.php.net/foreach
http://www.php.net/array_values
error77
3/7/2011
ASKER
Getting nothing reuturned for some reason. Syntax? something in the foreach loop isn't working.
Some more info:
This is the line that gets the data:
$theArrayVar = json_decode(file_get_conte
nts('
https://graph.webgsite.com/me?access_token='
.$session['access_token'])
);
any ideas please?
thanks again
ASKER CERTIFIED SOLUTION
hielo
3/7/2011
THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
error77
3/7/2011
ASKER
Yeah..that worked thanks!
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
Beverley Portlock
3/7/2011
Well spotted Hielo.... I just took his word it was an array....
echo theArrayVar[0];
will never work because the variable name needs a $
echo $theArrayVar[0];
Secondly - look at the dump and you will see that the elements have names like 'id' or 'name' and not 0, 1, 2, etc. This leaves you with two options:
1: Use foreach to read the array
foreach( $theArrayVar as $key => value )
echo "\$theArrayVar['$key'] has value $value<br/>";
2. Use array_values to build a new array numbered from 0 upwards
$newArray = array_values( $theArrayVar );
echo $newArray[0];
echo $newArray[1];
I advise you to master foreach because it is so very, very useful.
http://www.php.net/foreach
http://www.php.net/array_values