80sand 2022-08-30 18:59 采纳率: 87.9%
浏览 38
已结题

查询字符串并输出问题

$str='{
"attr_list":[{"attr_group_name":"规格","attr_group_id":1,"attr_id":1,"attr_name":"2.5kg"}],
"goods_attr":{"id":58,"goods_id":55,"sign_id":"1","stock":400,"price":"43.00","original_price":"43.00","no":"","bar_code":"","weight":0,"pic_url":"","is_share":1,"individual_share":0,"share_type":0,"member_price":null,"integral_price":null,"use_integral":null,"discount":[],"extra":[],"goods_warehouse_id":55,"name":"升隆-波波肠","cover_pic":"20220816/f8b1b751149a3888a427c07f984f2cdf.jpg","detail":"","pic_list":[{"id":"221","pic_url":"0220816/f8b1b751149a3888a427c07f984f2cdf.jpg"}],"number":2,"goods_share_level":null,"attr_setting_type":0,"goods_type":"goods","ecard_id":0,"cost_price":"0.00"}}';

$str_arr=json_decode($str, true);
        foreach($str_arrb['attr_list'] as $key=>$val){
       $attr_name= $val['attr_name'];
       
       echo $attr_name.'<br><br>';
         }

上面是要调用的内容。现在用下面的可以调用出attr_list里面的内容,但是不能调用goods_attr里面的内容。需要同时调用出attr_list中的attr_name=2.5kg和name=升隆-波波肠
这个如何写呢?

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-08-30 20:33
    关注

    需要双重foreach或者直接获取

    <meta charset="utf-8">
    <?php
    $str='{
    "attr_list":[{"attr_group_name":"规格","attr_group_id":1,"attr_id":1,"attr_name":"2.5kg"}],
    "goods_attr":{"id":58,"goods_id":55,"sign_id":"1","stock":400,"price":"43.00","original_price":"43.00","no":"","bar_code":"","weight":0,"pic_url":"","is_share":1,"individual_share":0,"share_type":0,"member_price":null,"integral_price":null,"use_integral":null,"discount":[],"extra":[],"goods_warehouse_id":55,"name":"升隆-波波肠","cover_pic":"20220816/f8b1b751149a3888a427c07f984f2cdf.jpg","detail":"","pic_list":[{"id":"221","pic_url":"0220816/f8b1b751149a3888a427c07f984f2cdf.jpg"}],"number":2,"goods_share_level":null,"attr_setting_type":0,"goods_type":"goods","ecard_id":0,"cost_price":"0.00"}}';
    
    
    $str_arr=json_decode($str, true);
    foreach($str_arr as $key=>$val){
         if($key=='attr_list'){
           foreach($str_arr[$key] as $key1=>$val1){
              $attr_name=$val1['attr_name'];
              echo $attr_name.'<br><br>';
           }
         }
         else if($key=='goods_attr'){
            $name=$val['name'];
            echo $name.'<br><br>';
         }
    }
    
    //或者
     
    echo $str_arr['attr_list'][0]['attr_name'].'<br><br>'.$str_arr['goods_attr']['name']; 
     
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 修改了问题 8月30日
  • 创建了问题 8月30日

悬赏问题

  • ¥15 蓝桥oj3931,请问我错在哪里
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染