簡體   English   中英

php-從鍵名獲取JSON值

[英]php - Getting JSON values from key names

我有一個類似於以下內容的JSON:

{
    "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
        }
    ]
}

我想獲得通過PHP用逗號分隔的每個stamp_id的列表(例如14,20,33,31)

我已經嘗試過了,沒有運氣:

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

有人可以幫忙嗎?

使用json_decode解碼JSON並使用array_column獲取ID。

工作解決方案:

// 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM