首页 > 解决方案 > 在 php 中,循环遍历数组(从 api 返回)以获取特定描述

问题描述

对于我正在做的一个小项目,我正在从 api 中获取一些数据。返回的数据解码如下:在members下,第一个数字(本例中:65385)是members id。

如果成员状态正常,我想返回此 ID 和成员名称。我可以返回成员姓名,但不知道如何获取 ID

"members": {
    "65385": {
        "name": "phpnewb",
        "days_active": 705,
        "last_action": {
            "status": "active",
            "timestamp": "",
            "relative": "51 minutes ago"
        },
        "status": {
            "description": "Okay",
            "details": "",
            "state": "Okay",
            "color": "green",
            "until": 0
        },

现在我想要的是:如果在 status -> Description 下它说“好的”,我想返回成员 id 和成员名称,在这种情况下,id:65385 和名称:phpnewb。

现在我已经尝试通过(名称部分)这样做(使用 $idcall_array 对解码数据进行处理):

foreach ($idcall_array['members'] as $member) {
    
    if ($member['status']['description'] == "Okay") {
        $name = $member['name'];
        echo $name;
        echo "</br>";
    }


}

这将按预期返回名称,我只是不知道如何获取 id,在成员上使用 var_dump 我再也看不到 ID

我对这些事情没有经验。

帮助表示赞赏

编辑:当做一个 var_dump($members) 我得到:

array(5) { ["name"]=> string(7) "phpnewb"

我假设数组(5)是我需要的整数/数字,但不知道如何提取它。

标签: phparraysapi

解决方案


您需要获取foreach的键,在您的情况下,是成员的 id:

foreach ($idcall_array['members'] as $id => $member) {
    echo $id . ' : ' . $member['name'] . '<br>';
}

注意:正确的换行标记<br>在 HTML5 中。


推荐阅读