如何使用带有foreach循环的开关

时间:2014-09-05 16:04:41

标签: php foreach switch-statement

我有多个页面可以调用特色商品' list - 我想在include中包含特色项目,然后在我的其他页面上只列出要包含在变量中的特色项目的名称。

我想可能会使用一个开关,然后使用一个foreach循环来完成所有操作,但我不熟悉PHP,我不确定这是正确的做法。

所以我想像这样创建我的开关:

switch ($sector){
    case "Sector1":
        $title = "title of sector";
        $url = "url here";
        $img = "image url here";       
        break;
    case "Sector2":
        $title = "title of sector";
        $url = "url here";
        $img = "image url here";
        break;
    case "Sector3":
        $title = "title of sector";
        $url = "url here";
        $img = "image url here";
        break;    
    default:
        $title = "title of sector";
        $url = "url here";
        $img = "image url here";
        break;
}

然后在每个页面上我想声明我想使用哪个开关

因此,例如,我想使用扇区1和2,然后在foreach循环中运行它们,以便输出如下内容:

<div class="item">
    <h1>'.$title.'</h1>
    <img src="'.$img.'" />
</div>

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

我认为没有理由使用开关盒。刚刚在数组中声明了您的项目,如下所示:

$Sectors = array("Sector1" => array("title" => "title of sector", "url" => "url here", "img" = "image url here"), 
  "Sector2" => array(...), 
 ...);

然后你可以获得任何特定的价值,如

$Sectors["Sector1"]["title"]

然后你可以只在每个页面上编码确切的html标签,或者像一个通用页面,并在顶部有一个你想要使用的数组,如

$Sectors_to_use = ["Sector1", "Sector2"];
foreach $Sectors_to_use as $sector {
    echo '<div class="item">';
    echo  "<h1>" . $Sectors[$sector]["title"] . "</h1>";
    echo  '<img src="' . $Sectors[$sector]["img"] . '"' />;
    echo "</div>"
}