所以,我正在使用php和一些天气api制作一个天气应用程序。我使用的API会给我代码告诉我天气是什么样的。例如,如果代码是200,这意味着当前的天气是"雷雨带小雨"。我想做的是为每个代码显示一个图标。
icon-lightning-4 { 200, 201, 202, 210, 211, 212, 221, 230, 231, 231 }
icon-rainy-2 { 300, 301, 302, 310, 311, 312, 313, 314, 321, 520, 521, 522, 531 }
icon-rainy { 500, 501, 502, 503, 504 }
icon-snowy-3 { 511, 600, 601, 602, 611, 612, 615, 616, 620, 621, 622 }
icon-air { 701, 711, 721, 731, 741, 751, 761, 761, 771, 781 }
icon-sun { 800 }
icon-moon { 800 }
icon-cloudy { 801 }
icon-cloud-3 { 801 }
icon-cloud-4 { 802 }
icon-cloudy-2 { 803, 804 }
上面你可以看到图标名称和代码在大括号内。如何实现这一点,用PHP显示图标,而不是代码。我不是PHP开发人员,但我正在学习,这就是我问这个问题的原因。非常感谢你的帮助。左边的图标名实际上是显示图标的span类。
我会将代码放入数组中,并使用foreach
结构遍历它们:
<?php
$iconMap = array(
'icon-lightning-4' => array(200, 201, 202, 210, 211, 212, 221, 230, 231, 231),
'icon-rainy-2' => array(300, 301, 302, 310, 311, 312, 313, 314, 321, 520, 521, 522, 531),
'icon-rainy' => array(500, 501, 502, 503, 504),
'icon-snowy-3' => array(511, 600, 601, 602, 611, 612, 615, 616, 620, 621, 622),
'icon-air' => array(701, 711, 721, 731, 741, 751, 761, 761, 771, 781),
'icon-sun' => array(800),
'icon-moon' => array(800),
'icon-cloudy' => array(801),
'icon-cloud-3' => array(801),
'icon-cloud-4' => array(802),
'icon-cloudy-2' => array(803, 804)
);
$icon = '';
foreach ($iconMap as $iconString => $codes) {
if (in_array($result, $codes, true)) {
$icon = $iconString;
break; // stop looping, for efficiency
}
}
我在这里调用了API $result
的结果。
这段代码在做什么:
- 用每个图标名称对应的代码创建关联数组
- 循环遍历这个数组
- 对于每个图标名,使用
in_array
检查 - 如果是,则设置
$icon
为图标名称并停止循环。
$result
是否在代码数组中如果没有找到代码,$icon
将只是一个空字符串。
您可以使用字符串$icon
来输出图像,例如:
if (!empty($icon)) {
echo "<img src='{$icon}.png' alt='...'>";
}
很难给你正确的代码,因为那里没有那么多,…但这是我要做的:
PHP:// for the lightning icon...
if ($code == 200||201||202||210||211||212||221||230||231||231){
$image_URL = "icon_lightning.png";
}
HTML: <img src='<?php echo $image_URL ?>' width='50px' height='50px'></img>