繁体   English   中英

如何在codeignigter中访问嵌套数组键?

[英]How can I access my nested array key in codeignigter?

"data": [
            {
                "pid": "81",
                "fname": "Parth",
                "lname": "Tandel",
                "pfname": "Parth",
                "plname": "Tandel",
                "userprofilephoto": "/Images/ProfilePictures/18/DSC_0164.JPG",
                "parentprofilephoto": "/Images/ProfilePictures/18/DSC_0164.JPG",
                "type": "ALBUM",
                "likescount": "1",
                "commentscount": "1",
                "sharecount": "0",
                "sharepid": null,
                "uaid": "18",
                "ownerid": "18",
                "parentid": null,
                "title": "newalbum2",
                "description": "",
                "sharedescription": null,
                "imagepath": null,
                "previewurl": null,
                "previewtitle": null,
                "previewshortdescription": null,
                "previewimageurl": null,
                "createdon": "2017-05-29 15:44:04",
                "posttype": "5",
                "comments": [
                    {
                        "pcid": "21",
                        "uaid": "31",
                        "comment": "this is dope",
                        "fname": "maulik",
                        "lname": "kanani",
                        "profPicturepath": "https://www.gravatar.com/avatar/003dbb32079ee5ff19ed75476f562bd1",
                        "createdon": "2017-06-15 23:50:36"
                    }
                ],
                "albumimages": [
                    {
                        "imagepath": "/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-36.png"
                    },
                    {
                        "imagepath": "/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-361.png"
                    },
                    {
                        "imagepath": "/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-363.png"
                    },
                    {
                        "imagepath": "/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-364.png"
                    },
                    {
                        "imagepath": "/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-365.png"
                    }
                ]
            }

我的PHP代码

<?php 
  for ($i=0; $i < sizeof($value->albumimages); $i++) 
  { 
    $x = count($value->albumimages); 
    switch($x) 
    { 
      break; 
      default: 
        if($i == 0 || $i == 1) 
        { 
          echo '<div class="col-sm-6 pads5 marb10"> <img class="full" src="'.getapiPath().$imgs->imagepath.'"> </div>'; 
        } 
        break; 
    } 
  } 
?>

我想要albumimages-> imagepath

我认为您正在寻找的是json_decode($ data, true );

这使json数据成为您可以使用的数组,例如var_dump($data["albumimages"])

工作示例: https//3v4l.org/Q9lkW
要遍历链接,您可以为foreach做https://3v4l.org/9rRSF

数据为json格式,因此可以使用“ json_encode()”函数将数据转换为php对象。 此函数将json数据转换为php对象,并使用php对象运算符访问属性。

$data = json_encode('your_json_string');
//and access like this
$data[0]->albumimages

您可以像这样使用foreach循环访问“ imagepath”

//get the albumsimages
$albumimages = $data[0]->albumimages;

//then use foreach to access the imagepath like this
foreach($albumimages as $image) {
    echo $image->imagepath ."\n";
}

在此处查看工作示例PHP沙箱

使用此代码

$a = json_decode('YOUR JSON STRING',true);
foreach($a['data'][0] as $key => $value){
    if($key == 'albumimages'){
        for($i = 0; $i < count($value); $i++){
            foreach($value[$i] as $k => $v){
                echo "Key: ".$k." Value: ".$v."<br/>";
            }
        }
    }
}

输出将像这样

键:imagepath值:/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-36.png

密钥:imagepath值:/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-361.png

键:imagepath值:/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-363.png

密钥:imagepath值:/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-364.png

键:imagepath值:/Images/18/Albums/newalbum2/Screenshot_from_2017-06-12_15-11-365.png

for ($i=0; $i < sizeof($value->albumimages); $i++) {
    $x = count($value->albumimages);
    switch($x) {
        default: 
            if($i == 0 || $i == 1) 
            { 
              echo '<div class="col-sm-6 pads5 marb10"> <img class="full" src="'.getapiPath().$value->albumimages[$i]->imagepath.'"> </div>'; 
            } 
            break;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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