i realize there quite few questions of nature, have not been able solve issue using other posts, hoping here may able me out.
i have object i'm getting yahoo local search api. have passed results json_decode()
, saved results $yahoo_json_decoded
. can data results using loop , doing following:
echo 'name: ' . $yahoo_json_decoded->resultset->result[$i]->title . '<br />' ;
but can't seem able make foreach work:
foreach($yahoo_json_decoded->resultset $res=>$variable) { $listingid = $yahoo_json_decoded->resultset[$res]->id ; echo $listingid; }
i loop data , move on, want understand why foreach
isn't working.
thanks (show mercy)
kirk
the literal difference between 2 loops
the for
loop in snippet iterates on array $yahoo_json_decoded->resultset->result
, while foreach
loop iterates on object $yahoo_json_decoded->resultset
.
in other words, in for
loop you're iterating on array elements expect, whereas in foreach
loop in fact iterating on object properties.
a demonstration of difference
for example, given object:
$json = json_encode(array('result'=>array('apple','orange','lemon'))); $obj = json_decode($json);
consider difference between loop:
for ($i=0; $i < count($obj->result); $i++) : echo $i.' - '.$obj->result[$i].' '; endfor;
and loop:
foreach ($obj $key=>$val) : echo $key.' - '; var_dump($val); endforeach;
the output of first loop be:
0 - apple 1 - orange 2 - lemon
while output of second be:
result - array(3) { [0]=> string(5) "apple" [1]=> string(6) "orange" [2]=> string(5) "lemon" }
Comments
Post a Comment