PHP:如何判断变量含betrag并提取对应数值至新变量?
解决方法
直接处理SimpleXMLElement对象(推荐)
你的数据源是XML,PHP解析后通常返回SimpleXMLElement实例,没必要转成JSON再处理,直接操作属性和值更高效:
foreach ($yourXmlElements as $item) { // 读取name属性并转成字符串比较 if ((string)$item['name'] === 'betrag') { // 获取节点的数值,按需转成字符串或浮点型 $targetValue = (string)$item; // 若只需第一个匹配项,可添加break终止循环 break; } }
若已转为数组处理
如果已经通过json_decode(json_encode($item), true)把对象转成了关联数组,可按数组键名判断:
foreach ($yourArrayElements as $item) { // 先检查键是否存在,避免Undefined index报错 if (isset($item['@attributes']['name']) && $item['@attributes']['name'] === 'betrag') { $targetValue = $item['0']; // 按需转成数值类型:$targetValue = (float)$item['0']; break; } }
关键注意点
- 类型转换:SimpleXMLElement的属性和节点值都是对象,必须用
(string)强制转换后才能正确比较和赋值 - 严格匹配:用
===严格相等运算符,避免因类型自动转换导致的误匹配 - 存在性检查:处理数组时先用
isset()判断键是否存在,防止报错
内容的提问来源于stack exchange,提问作者itNGO
相关产品推荐
相关产品推荐

