Php 如果输入代码等于代码,则设置图标
因此,我正在使用php和一些天气API制作一个天气应用程序。我使用的API为我提供了说明天气状况的代码。例如,如果代码为200,则表示当前天气为“雷雨伴小雨”。我想做的是为每个代码显示一个图标Php 如果输入代码等于代码,则设置图标,php,Php,因此,我正在使用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 } ic
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开发人员,但我正在学习,这就是为什么我要问这个问题。非常感谢你的帮助。左侧的图标名称实际上是显示图标的跨类。很难给出正确的代码,因为没有那么多,。。。但我会这么做: PHP: HTML:
'width='50px'height='50px'>
我只需将代码放入一个数组中,并使用以下构造循环它们:
<?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
}
}
所以我需要为每个图标循环?有没有办法为这个做一个解析器?@TheNeosrb那里没有任何循环,自从我写了“for”之后,你可能会感到困惑。@TheNeosrb这就是为什么我说困惑,好吧,但是有没有办法为这个做一个解析器?它返回一个空字符串,即使与
$result
匹配的是$result
字符串还是整数?如果$result
是字符串,则将所有数组元素更改为字符串(即在其周围加引号或撇号)
<img src='<?php echo $image_URL ?>' width='50px' height='50px'></img>
<?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
}
}
if (!empty($icon)) {
echo "<img src='{$icon}.png' alt='...'>";
}