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

PHP如何通过索引正确获取数组中指定位置的rating字段值

报错原因

你写的[0]['rating']、[1]['rating']没有绑定任何数据源,属于未指定数组变量的空数组写法,PHP无法识别你要从哪个数组中提取数据,因此触发Undefined index报错。

正确实现方案

根据你是否需要保留循环逻辑,可选择对应写法:

  • 不需要循环、直接取固定索引值
    你的method本身就是从0开始的数字索引数组,无需套foreach循环,直接指定完整数组路径取值即可:

    // 获取索引0位置的rating
    echo $res['method'][0]['rating']; // 输出936.6
    // 获取索引1位置的rating
    echo $res['method'][1]['rating']; // 输出332
    

    生产环境建议搭配isset()做存在性判断,避免对应索引不存在时抛出报错,示例:echo isset($res['method'][0]['rating']) ? $res['method'][0]['rating'] : '默认值';

  • 需要保留foreach循环逻辑
    如果业务要求必须在循环内取值,有两种常用写法:

    1. 直接写完整数组路径读取指定索引的值,和循环外的取值逻辑一致:
      <?php foreach($res['method'] as $key=>$row) { ?>    
          索引0的rating:<?php echo $res['method'][0]['rating']; ?>
          索引1的rating:<?php echo $res['method'][1]['rating']; ?>
          当前循环项的rating:<?php echo $row['rating']; ?>
      <?php } ?>
      
    2. 利用循环自带的$key变量(即当前遍历项的索引值)做判断,匹配到目标索引时输出对应值:
      <?php foreach($res['method'] as $key=>$row) { ?>    
          <?php if($key == 0) { ?>
              第一个位置的rating:<?php echo $row['rating']; ?>
          <?php } ?>
          <?php if($key == 1) { ?>
              第二个位置的rating:<?php echo $row['rating']; ?>
          <?php } ?>
      <?php } ?>
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:54:19