Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果输入代码等于代码,则设置图标_Php - Fatal编程技术网

Php 如果输入代码等于代码,则设置图标

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

因此,我正在使用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开发人员,但我正在学习,这就是为什么我要问这个问题。非常感谢你的帮助。左侧的图标名称实际上是显示图标的跨类。

很难给出正确的代码,因为没有那么多,。。。但我会这么做:

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='...'>";
}