duanmiao6695 2015-11-22 17:22
浏览 23
已采纳

php - 从密钥名称获取JSON值

I have a JSON similar to the following:

{
    "name": "Activities",
    "description": "Activities",
    "parent_group_id": 0,
    "display": "Activities",
    "group_id": 7,
    "stamps": [
        {
            "stamp_id": 14,
            "name": "Stamp 14",
            "rank": 2
        },
        {
            "stamp_id": 20,
            "name": "Stamp 20",
            "rank": 4
        }
    ]
},
{
    "name": "Games",
    "description": "Games",
    "parent_group_id": 0,
    "display": "Games",
    "group_id": 6,
    "stamps": [
        {
            "stamp_id": 33,
            "name": "Stamp 33",
            "rank": 3
        },
        {
            "stamp_id": 31,
            "name": "Stamp 31",
            "rank": 1
        }
    ]
}

I want to get a list of each of the stamp_ids seperated by commas through PHP (eg. 14,20,33,31)

I have already tried this, with no luck:

$stampsdata     = json_decode($stampsjson, true);
$numberofstamps = $stampsdata['stamps']['stamp_id']);

Can anyone help?

  • 写回答

1条回答 默认 最新

  • douyao7390 2015-11-22 17:31
    关注

    decode the JSON with json_decode and use array_column to get the IDs.

    working solution:

    // true needed to transform object to associative array
    // $json contains your JSON string
    
    $data = json_decode($json, true);
    
    $stamps = [];
    foreach ($data as $obj) {
        $stamps[] = array_column($obj['stamps'], 'stamp_id');
    }
    
    // implode sub arrays and concatenate string
    $str = '';
    
    foreach ($stamps as $stamp) {
        $sub = implode(',', $stamp);
        $str .= $sub . ',';
    }
    
    // remove trailing comma
    $stampIds = rtrim($str, ',');
    print ($stampIds);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看