array_search 忽略第一个值并跳到第二个值

时间:2021-03-07 10:00:15

标签: php

我正在尝试为正确的天气代码显示正确的天气图标,但它似乎不起作用?在下面的代码中,您会看到我有 2 个 wi-day-cloudy,但具有不同的天气代码(02d03d)。 array_search 仅在第二个 (03d) 之后,即使 strict 设置为 true。

function weathericon($string) {
    $array_icons = Array(
        'wi-day-sunny' => '01d',
        'wi-day-cloudy' => '02d',
        'wi-day-cloudy' => '03d',
        'wi-cloudy' => '04d',
        'wi-day-snow' => '13d'
    );

    return '<i class="wi '.array_search($string, $array_icons, true).'">';
}

我该如何解决这个问题,让它在 02d03d 之后都运行,即使它们具有相同的图标代码 (wi-day-cloudy)?

1 个答案:

答案 0 :(得分:1)

我想出了另一个效果更好的解决方案。

function weathericon($string) {
    $array_icons = Array(
        '01d' => 'wi-day-sunny',
        '02d' => 'wi-day-cloudy',
        '03d' => 'wi-day-cloudy',
        '04d' => 'wi-cloudy',
        '13d' => 'wi-day-snow'
    );

    return (!isset($array_icons[$string]) ? '-' : $array_icons[$string]);
}