PHP如何格式化var_dump输出的数组 提取国家代码并转为全称
实现方案
你可以通过建立国家代码与全称的映射数组,遍历API返回的国家代码数组做匹配转换即可完成需求,完整实现如下:
基础实现代码
<?php // 2位国家代码与国家全称映射数组,可按需扩展内容 $countryMap = [ 'US' => 'United States', 'ES' => 'Spain', 'MX' => 'Mexico' ]; $url = 'https://api.example.com/v1/w'; $data = file_get_contents($url); $data = json_decode($data); $denyCountries = $data->rule->deny_countries; // 逐行输出转换后的国家全称 foreach ($denyCountries as $countryCode) { // 映射存在则输出全称,不存在则输出原2位代码做兼容 echo $countryMap[$countryCode] ?? $countryCode . PHP_EOL; } ?>
其他常用输出形式
如果需要将所有国家全称拼接为单个分隔字符串输出,可使用array_map处理后拼接:
$countryFullNames = array_map(function($code) use ($countryMap) { return isset($countryMap[$code]) ? $countryMap[$code] : $code; }, $denyCountries); // 用顿号分隔输出 echo implode('、', $countryFullNames); // 输出结果:United States、Spain、Mexico
低版本PHP兼容说明
如果你的运行环境PHP版本低于7.0,不支持?? NULL合并运算符,可将遍历部分的输出逻辑替换为:
echo isset($countryMap[$countryCode]) ? $countryMap[$countryCode] : $countryCode . PHP_EOL;
内容的提问来源于stack exchange,提问作者Axel Gomez
相关产品推荐
相关产品推荐

