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

PHP如何访问动态键名的stdClass对象属性tileset_precisions

访问动态键名的stdClass对象属性的最优方法

针对你遇到的场景——$getBodyTilesets[0]的tileset_precisions是键名动态变化的stdClass对象,下面是几种实用的实现方案:

方案一:转数组后访问

把stdClass对象转为关联数组,直接用数组下标操作动态键,直观易读:

// 取目标对象
$tileSet = $getBodyTilesets[0];
// 转成数组
$precisionsArr = (array)$tileSet->tileset_precisions;

// 访问指定动态键(比如10m)
if (isset($precisionsArr['10m'])) {
    $targetValue = $precisionsArr['10m'];
}

// 遍历所有动态键值对
foreach ($precisionsArr as $precision => $value) {
    // $precision是10m/5m这类动态键名,$value是对应的值
    echo "精度:{$precision},对应值:{$value}\n";
}

方案二:直接操作对象的动态属性

PHP支持通过变量或字符串拼接的方式,用->{$键名}的语法访问对象的动态属性,适合单次访问已知键的场景:

$tileSet = $getBodyTilesets[0];
$targetKey = '3cm';

// 直接访问动态键
$targetValue = $tileSet->tileset_precisions->{$targetKey};

// 遍历所有动态键的话,先获取对象的所有属性名
$allKeys = get_object_vars($tileSet->tileset_precisions);
foreach ($allKeys as $key => $value) {
    echo "精度:{$key},对应值:{$value}\n";
}

最优选择建议

  • 若仅需单次访问某个已知动态键,方案二更高效,无需类型转换;
  • 若要批量遍历、频繁操作键值对,方案一转数组后可复用PHP数组的各类工具函数(如array_keys、array_filter),灵活性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:25:22