You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP遍历数组无法正确比对键值 跳过id键输出作者信息问题

问题场景

我正在使用foreach遍历包含多个键的数组,以打印输出作者信息,初始编写的代码如下:

foreach($data as $authors) {
    foreach($authors as $id){
        foreach($id as $key){
            if($key !== $key['id'])
            echo $key . '-';
        }
    }
}

实现目标:遍历过程中若遇到键名为id的字段则不输出,仅输出姓名、邮箱、出生年份这三类作者信息。
项目完整代码结构如下:

$data = [
    'authors' => [
        301 => [
            'id' => 301,
            'name' => 'William Shakespeare',
            'email' => 'william_shakespeare@example.com',
            'birthYear' => 1799,
        ],
        10 => [
            'id' => 10,
            'name' => 'Jack London',
            'email' => 'jack_london@example.com',
            'birthYear' => 1809,
        ],
        17 => [
            'id' => 17,
            'name' => 'Mikhail Lermontov',
            'email' => 'mikhail_lermontov@example.com',
            'birthYear' => 1814,
        ],
    ],
];

echo '=== Authors ===<br>';

foreach($data as $authors) {
    foreach($authors as $id){
        foreach($id as $key){
            if($key !== $key['id'])
            echo $key;
        }
    }
}
代码问题说明
  • 遍历层级冗余:数组实际结构为$data['authors']存储所有作者条目,每条作者信息是包含id、name等字段的一维数组,现有三层foreach属于多余嵌套,两层遍历即可覆盖所有需要的内容
  • 判断逻辑失效:现有判断if($key !== $key['id'])未获取遍历过程中的字段键名,仅拿元素值和值本身的'id'下标做对比,完全无法实现「跳过id字段」的需求
修正方案

遍历单个作者的信息数组时,同时获取字段键名和对应值,判断键名不是id时再输出内容即可,修正后的代码如下:

echo '=== Authors ===<br>';
// 遍历authors下的所有作者条目
foreach($data['authors'] as $author) {
    // 遍历单个作者的所有字段,同时拿到字段名和字段值
    foreach($author as $field => $value) {
        // 字段名为id时直接跳过
        if($field === 'id') {
            continue;
        }
        // 输出字段值,用-分隔
        echo $value . '-';
    }
    // 单个作者信息输出完成后换行
    echo '<br>';
}

如果不需要动态判断字段,也可以直接指定要输出的三个字段,用implode拼接,逻辑更稳定:

echo '=== Authors ===<br>';
foreach($data['authors'] as $author) {
    echo implode('-', [
        $author['name'],
        $author['email'],
        $author['birthYear']
    ]) . '<br>';
}

内容的提问来源于stack exchange,提问作者Roomba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:33:11