Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

使用数组存储信息并使用php检索它们

使用数组存储信息并使用php检索它们,php,arrays,Php,Arrays,例如,我有 和流程页面: `$fashion\u id=$\u GET['menu\u id'] if ($menu_id == "1") { $id = "1"; $menu_name ="Business Fashion"; $img_file ="images/mushroomsoup.jpg"; $description ="mushroom soup"; $color ="red"; } elseif($menu_id =="2") {

例如,我有

和流程页面: `$fashion\u id=$\u GET['menu\u id']

if ($menu_id == "1") {
    $id = "1";
    $menu_name ="Business Fashion";
    $img_file ="images/mushroomsoup.jpg";
    $description ="mushroom soup";
    $color ="red";
}
elseif($menu_id =="2") {
    $id ="2";
    $menu_name ="minestrone soup";
    $img_file ="images/mine.jpg";
    $description ="minestrone soup";
    $color ="blue"; 
}
elseif($menu_id =="3") {
    $id="3";
    $menu_name ="carrot soup";
    $img_file ="images/carrot.jpg";
    $description ="carrot soup.";
    $color ="green";
}
elseif ($menu_id =="4"){
    $id="4";
    $menu_name ="shark fin";
    $img_file ="images/sharkfin.jpg";
    $description ="sharkfin.";
    $color ="gray";
}



    echo "<h1 style='text-align: center'>Welcome to my restaurant!</h1>";
    echo "<font color=$color>You have selected $menu_name</font>. Menu ID($id)<br/>";
    echo "<img src='$img_file'></img><br/>";
    echo "$description";

    ?>
" 假设我想使用数组函数,而不是使用if-else语句,我该怎么做呢?我知道使用sql语句有一种更简单的方法,但我还没有学过sql,现在我只能使用php。
提前谢谢

您可能正在寻找构造

从PHP手册文档中:

switch语句类似于同一表达式上的一系列IF语句。在许多情况下,您可能希望将同一变量或表达式与许多不同的值进行比较,并根据其等于哪个值执行不同的代码段。这正是switch语句的作用

因此,您的代码如下所示:

switch ($menu_id) {
    case '1':
        # code
        break;
    case '2':
        #code
        break;

    ...

    default:
        # code...
        break;
}

您可以使用switch case语句。
您可以这样做:

$menu = array(
   "1"=>array(
      "id"=>1,
      "menu_name"=>"shark fin";
      ...
   )
   ...
)
然后使用$entry=$menu[$menu_id]获取条目,使用$id=$entry[id]等获取零件。别忘了确保$menu\u id实际上是有效的。你可以很容易地输入。奇怪的时尚,顺便说一句


祝你学习PHP好运

这应该让您开始:

$menus = array(
    1 => array(
        'menu_name'   => "Business Fashion",
        'img_file'    => "images/mushroomsoup.jpg",
        'description' => "mushroom soup",
        'color'       => "red"
    ),
    2 => array(
        'menu_name'   => "minestrone soup",
        'img_file'    => "images/mine.jpg",
        'description' => "minestrone soup",
        'color'       => "blue"
    ),
);

// Print out the menu name for menu ID #1
echo $menus[$menu_id]['menu_name']; // Business Fashion
基本上,您将菜单项放在一个数组中,然后使用从for query string获得的菜单ID访问它们

要将其放入表中,您可以使用一个简单的循环:

foreach ($menus as $id => $menu) {
?>
    <tr>
        <td><?php echo $menu['menu_name']; ?></td>
        <td><?php echo $menu['img_file']; ?></td>
        <td><?php echo $menu['description']; ?></td>
        <td><?php echo $menu['color']; ?></td>
    </tr>
<?php   
}

你显然需要改变它以适应你的需要,但应该给你这个想法。如果您需要菜单ID,您只需回显$ID。

您听说过事例吗?没有办法用数组代替If-else。@超级音效当然有,如果If-else将相等值与数值常量进行比较,您只需在该数组槽中调用一个带有输出数据/操作/函数的数组。@Dan Yep,您完全正确…@DainisAbols是开关和机箱功能吗?我想是的。这正是我所说的。虽然这是OP所要求的,但我还是会建议采纳建议。@DainisAbols为什么?他说他还在学习,这可能是一个很好的锻炼。更不用说基于数组的菜单更具可伸缩性了。@DainisAbols再次表示不同意。它是一个灵活、可伸缩的菜单系统。您甚至可以添加子菜单和所有功能。@DainisAbols Amal Murali的答案在维护方面更麻烦。此答案仅要求在打开菜单时更新阵列。正如OP提到的,数据库会更好,因为它可以填充菜单页面,哈哈,这是因为我在做我学校的作业。我做了最初的测试,我们可以使用的一个高级功能是使用数组来存储信息。。无论如何,谢谢你的帮助!: