如何使用foreach将重复的if语句转换为php数组


How do I make a repeated if statement into a php array using foreach?

在PHP中,我正在尝试为每种不同类型的音乐类型添加不同颜色的块。每种颜色代表一种特定的流派。我有 12 种流派,但为了简化起见,我只包括了其中的 3 种。

首先我得到流派值

$genre = get_post_meta($post->ID, 'genre', true);

然后我使用这样的 if 语句(尽管它不适用于第 2 种类型)

if($genre == "EDM")
echo '<div style="display:block;width:100%;height:10px;background-color:#9B86FF;"></div>';
else if($genre == "Hip-Hop")
echo '<div style="display:block;width:100%;height:10px;background-color:#56FFCE;"></div>';
else if($genre == "Rock")
echo '<div style="display:block;width:100%;height:10px;background-color:#56CBFD;"></div>';

它适用于EDM和Hip-Hop,但在Hip-Hop之后停止工作。

任何帮助将不胜感激!

这个呢?

$genre_colors = array("EDM" => "9B86FF", "Hip-Hop" => "56FFCE", "Rock" => "56CBFD");
$color = $genre_colors[get_post_meta($post->ID, 'genre', true)];
if ($color !== null)
  echo '<div style="display:block;width:100%;height:10px;background-color:#' . $color . ';"></div>';