-4

我有一个页面显示二维数组中的项目列表,如下所示:

<?php 
    for ($row = 0; $row < $arrlength; $row++)
    {
       echo "<li>";
       echo "<a href='#item-info' >";              
       echo $items[$row]["Item"];
       echo "</a>"; 
       echo "</li>";
    }
?>

我希望能够让用户单击他们想要的项目的链接,这会将他们带到显示所有项目信息的页面。我的数组看起来像这样:

$items = array( array(Item =>"Jeans",
                      Colour =>"Blue",
                      In stock =>"Yes"),

我一直在网上查看 php 教程,我相信我应该在我的 url 中使用 GET 方法,#item-info但我不太确定最好的方法是什么。

我想要这个的原因是因为我的数组包含近 1000 个项目,制作 1000 个项目信息页面将是一个漫长的过程,所以我只想制作一个页面,在一个单独的页面上显示所有特定项目信息。

先感谢您 :)

4

2 回答 2

3

您需要引用您的密钥:

$rooms = array(
    array(
        "Item" =>"Jeans",
        "Colour" =>"Blue",
        "In stock" =>"Yes"
    )
);

另外,我假设您在循环中访问的数组实际上是被调用$items的,这里的使用$rooms只是一个例子。

我很抱歉,回答你的实际问题:你似乎想要一个书签标签。您将使用以下内容构建它:

echo "<a href='" . $items[$row]["Item"] . "-" . $items[$row]["Colour"] . "'></a>";

然后,您可以在 URL 中使用书签哈希来匹配您要链接到的任何书签。例如,要转到上述示例数组中的项目,您的书签哈希将是:#Jeans-Blue

于 2013-03-13T14:15:36.117 回答
0

首先,您提供的当前数组返回:

解析错误:语法错误,意外的 'stock' (T_STRING),在第 5 行的 C:\xampp\htdocs\index.php 中需要 ')'

这是因为您没有将密钥封装为字符串。

$rooms = array( array(Item =>"Jeans",
                      Colour =>"Blue",
                      In stock =>"Yes")

应该:

$rooms = array( array("Item" =>"Jeans",
                      "Colour" =>"Blue",
                      "In stock" =>"Yes")

另外,您没有正确关闭阵列,您错过了关闭);

所以你的结束数组应该是:

$rooms = array( array("Item" =>"Jeans",
                      "Colour" =>"Blue",
                      "In stock" =>"Yes"));

以及如何访问如下:

执行print_r($rooms);退货:

Array ( [0] => Array ( [Item] => Jeans [Colour] => Blue [In stock] => Yes ) ) 

要访问单个数据,您需要搜索要搜索的内部数组的键:

所以

echo $rooms[0]['Item'];将打印:Jeans

访问我个人的整个数组(我知道其他开发人员会有他们的方法,所以尊重他们)

Foreach ($rooms AS $Primary_Array)
{
   // this searches through your primary array 
   foreach ($Primary_Array AS $Room_Keys => $Room_Value)
   {
      // This searches through your secondary level array so you can return: 
     echo '<b>'.$Room_Keys.'</b>:'.$Room_Value.'<br>'; 
     /*
      with your array provided, you will have the following output:

     **Item**: Jeans
     **Colour**: Blue
     **Instock**: Yes
     */
   }
}
于 2013-03-13T14:19:03.873 回答