简体   繁体   中英

How to Get Array Inside stdClass

I am trying to decode with json http://digitsolutions4u.com/apps_services/statuslist.php?catid=1 like this

<?php 
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1";
$json = file_get_contents($json_url);
$json=str_replace('},

]',"}

]",$json);
$data = json_decode($json);

echo "<pre>";
print_r($data);
echo "</pre>";
?>

i want to get all "statusdesc" Values after decode. I am getting results something like this

stdClass Object
(
    [posts] => Array
        (
            [0] => stdClass Object
                (
                    [statusid] => 1329
                    [statusdesc] => love86.jpg
                )
)
)

i just want to list out all statusdesc available on the page like love86.jpg love87.jpg love88.jpg and so on. Anyone can provide me solution(code) for this? I have tried several threads, but no success.

By default json_decode decodes it to an object instead of an associative array. You just access the members of that object via the arrow ( -> ) notation. To get each post you can use foreach to loop through them.

foreach ($data->posts as $post) {
  echo $post->statusdesc;
}

All you need to do is tell json_decode() that you want it to convert the JSON String to all arrays and not as the JSONString intended an object

<?php 
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1";
$json = file_get_contents($json_url);

$data = json_decode($json, true);
// the change ..  ..  ..   ^^^^

echo "<pre>";
print_r($data);
echo "</pre>";
foreach ($json['posts'] as $post) {
    echo $post['statusdesc'] . '<br>';
}
?>

However is is simpler tp deal with it as it is and do

<?php 
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1";
$json = file_get_contents($json_url);

$data = json_decode($json);

//echo "<pre>";
//print_r($data);
//echo "</pre>";

foreach ($json->posts as $post) {
    echo $post->statusdesc . '<br>';
}
?>

use json_decode() with second parameter true . it's return the json string as associative array . and use array_column like this

<?php

    $response ='{"posts":[{"statusid":"1329","statusdesc":"love86.jpg"},{"statusid":"1328","statusdesc":"love85.jpg"},{"statusid":"1327","statusdesc":"love84.jpg"},{"statusid":"1326","statusdesc":"love83.jpg"},{"statusid":"1325","statusdesc":"love82.jpg"},{"statusid":"1324","statusdesc":"love81.jpg"},{"statusid":"1323","statusdesc":"love80.jpg"},{"statusid":"1322","statusdesc":"love79.jpg"},{"statusid":"1321","statusdesc":"love78.jpg"},{"statusid":"1320","statusdesc":"love77.jpg"},{"statusid":"1319","statusdesc":"love76.jpg"},{"statusid":"1318","statusdesc":"love75.jpg"},{"statusid":"1317","statusdesc":"love74.jpg"},{"statusid":"1316","statusdesc":"love73.jpg"},{"statusid":"1315","statusdesc":"love72.jpg"},{"statusid":"1314","statusdesc":"love71.jpg"},{"statusid":"1313","statusdesc":"love70.jpg"},{"statusid":"1312","statusdesc":"love69.jpg"},{"statusid":"1311","statusdesc":"love68.jpg"},{"statusid":"1310","statusdesc":"love67.jpg"},{"statusid":"1287","statusdesc":"love66.jpg"},{"statusid":"1286","statusdesc":"love65.jpg"},{"statusid":"1285","statusdesc":"love64.jpg"},{"statusid":"1284","statusdesc":"love63.jpg"},{"statusid":"1283","statusdesc":"love62.jpg"},{"statusid":"1282","statusdesc":"love61.jpg"},{"statusid":"1204","statusdesc":"love60.jpg"},{"statusid":"1203","statusdesc":"love59.jpg"},{"statusid":"1202","statusdesc":"love58.jpg"},{"statusid":"1201","statusdesc":"love57.jpg"},{"statusid":"1200","statusdesc":"love56.jpg"},{"statusid":"1199","statusdesc":"love55.jpg"},{"statusid":"1045","statusdesc":"love54.jpg"},{"statusid":"1044","statusdesc":"love53.jpg"},{"statusid":"1043","statusdesc":"love52.jpg"},{"statusid":"1042","statusdesc":"love51.jpg"},{"statusid":"1004","statusdesc":"love50.jpg"},{"statusid":"1003","statusdesc":"love49.jpg"},{"statusid":"1002","statusdesc":"love48.jpg"},{"statusid":"1001","statusdesc":"love47.jpg"},{"statusid":"1000","statusdesc":"love46.jpg"},{"statusid":"239","statusdesc":"love45.jpg"},{"statusid":"238","statusdesc":"love44.jpg"},{"statusid":"237","statusdesc":"love43.jpg"},{"statusid":"236","statusdesc":"love42.jpg"},{"statusid":"235","statusdesc":"love41.jpg"},{"statusid":"234","statusdesc":"love40.jpg"},{"statusid":"233","statusdesc":"love39.jpg"},{"statusid":"232","statusdesc":"love38.jpg"},{"statusid":"231","statusdesc":"love37.jpg"},{"statusid":"230","statusdesc":"love36.jpg"},{"statusid":"229","statusdesc":"love35.jpg"},{"statusid":"228","statusdesc":"love34.jpg"},{"statusid":"227","statusdesc":"love33.jpg"},{"statusid":"226","statusdesc":"love32.jpg"},{"statusid":"31","statusdesc":"love31.jpg"},{"statusid":"30","statusdesc":"love30.jpg"},{"statusid":"29","statusdesc":"love29.jpg"},{"statusid":"28","statusdesc":"love28.jpg"},{"statusid":"27","statusdesc":"love27.jpg"},{"statusid":"26","statusdesc":"love26.jpg"},{"statusid":"25","statusdesc":"love25.jpg"},{"statusid":"24","statusdesc":"love24.jpg"},{"statusid":"23","statusdesc":"love23.jpg"},{"statusid":"22","statusdesc":"love22.jpg"},{"statusid":"21","statusdesc":"love21.jpg"},{"statusid":"20","statusdesc":"love20.jpg"},{"statusid":"19","statusdesc":"love19.jpg"},{"statusid":"18","statusdesc":"love18.jpg"},{"statusid":"17","statusdesc":"love17.jpg"},{"statusid":"16","statusdesc":"love16.jpg"},{"statusid":"15","statusdesc":"love15.jpg"},{"statusid":"14","statusdesc":"love14.jpg"},{"statusid":"13","statusdesc":"love13.jpg"},{"statusid":"12","statusdesc":"love12.jpg"},{"statusid":"11","statusdesc":"love11.jpg"},{"statusid":"10","statusdesc":"love10.jpg"},{"statusid":"9","statusdesc":"love9.jpg"},{"statusid":"8","statusdesc":"love8.jpg"},{"statusid":"7","statusdesc":"love7.jpg"},{"statusid":"6","statusdesc":"love6.jpg"},{"statusid":"5","statusdesc":"love5.jpg"},{"statusid":"4","statusdesc":"love4.jpg"},{"statusid":"3","statusdesc":"love3.jpg"},{"statusid":"2","statusdesc":"love2.jpg"},{"statusid":"1","statusdesc":"love1.jpg"}]}';

    $response_array = json_decode($response,true);

    $final_res =  array_column($response_array['posts'],'statusdesc');

    print_r($final_res);

?>

OUTPUT :

Array
(
    [0] => love86.jpg
    [1] => love85.jpg
    [2] => love84.jpg
    [3] => love83.jpg
    [4] => love82.jpg
    [5] => love81.jpg
    [6] => love80.jpg
    ......
 )
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1";
$json = file_get_contents($json_url);

this should return you array of object(stdClass)

$elm = json_decode( $json );
var_dump( $elm->posts );

you can get one of your string in this way:

$elm->posts[5]->statusdesc

or you can convert your json into array using json_decode( $json, true )

NOTE: json_decode can't remember your original class as serialize it always return stdClass (you can access to properties but not to the methods of the original class)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM