PHP动态变量及REST API返回值映射赋值技术问题
解决REST API返回数值到字符串的映射问题
嘿,我来帮你搞定这个数值映射的问题!从你给出的API返回结构和需求来看,其实很容易实现,给你两个实用的方案:
方案一:关联数组映射(最简洁直接)
先定义一个清晰的数值-字符串映射关系,再从嵌套数组里提取目标数值,最后通过映射数组拿到对应的字符串就行:
// 1. 先把映射规则写死在关联数组里 $valueMap = [ 4 => 'House', 5 => 'Bedroom' ]; // 2. 从API返回的数组中提取目标数值 $targetValue = $resultArray[0]['number'][0]['value']; // 3. 完成映射,同时处理未知数值的兜底情况(推荐加上,避免报错) $mappedResult = isset($valueMap[$targetValue]) ? $valueMap[$targetValue] : 'Unknown'; // 后续直接用$mappedResult就可以啦 echo $mappedResult; // 这里会输出House
方案二:switch语句处理(适合复杂映射规则)
如果之后你的映射逻辑可能变复杂(比如要加判断条件),用switch会更灵活:
// 先提取目标数值 $targetValue = $resultArray[0]['number'][0]['value']; // 用switch做映射 switch ($targetValue) { case 4: $mappedResult = 'House'; break; case 5: $mappedResult = 'Bedroom'; break; default: $mappedResult = 'Unknown'; // 遇到不在规则里的数值就返回这个 break; } echo $mappedResult;
额外小提示:避免数组报错
因为API返回的是嵌套数组,万一number字段为空或者结构有变化,直接取值会报错,所以可以加个安全检查:
// 安全提取数值的写法 $targetValue = null; if (isset($resultArray[0]['number'][0]['value'])) { $targetValue = $resultArray[0]['number'][0]['value']; } // 再进行映射操作...
内容的提问来源于stack exchange,提问作者user8031952
相关产品推荐
相关产品推荐

