我正在尝试创建一个数组来显示客户查看过的最后5个产品。
这个数组是一个二维数组,如下所示.
$RView=数组(数组( ID => "1001",RefCode => "Ref_01",名称=> "Name_01“),.数组( ID => "1005",RefCode => "Ref_05",名称=> "Name_05“);
数组值从产品记录集中检索,并设计为在客户访问产品页时按如下方式工作。
如果不是,则创建一个新数组。
如果没有,则进入下一步。
我目前的努力如下..。
非常感谢你的帮助。
<?php
session_start()
// Get or Create Array
IF (isset($_SESSION['sessRView'])) {
$RView = ($_SESSION['sessRView']); }
ELSE {
$RView = array(array());
}
// Append currently viewed Product to Array
array(array_unshift($RView, $row_rsPrd['PrdID'], $row_rsPrd['RefCode'], $row_rsPrd['Name']));
// Check if more than 5 products exist in Array, if so delete.
IF (sizeof($RView) > 5) {
array(array_pop($RView)); }
// Update Session for next page
$_SESSION['sessRView'] = $RView;
// Display Array
for ($row = 0; $row < 5; $row++)
{
echo "<ul>";
echo "<li><a href='?PrdID=".$RView[$row]["PrdID"]."'>".$RView[$row]["RefCode"]."</a> : ".$RView[$row]["Name"]."</li>";
echo "</ul>";
}
?>发布于 2009-05-01 02:54:49
它或多或少是正确的-只需要改变两行。
不需要在array_pop.
array_unshift($RView, array($prodid,$name,...))
array_unshift($RView, array($prodid,$name,...))
foreach ($Rview as $prod) echo $prod['Name']...
在你做出这些改变之后,它应该会起作用。不过,您可能需要稍微清理一下编码样式:)
编辑:哦,我知道了,当您在for循环中引用数组时,它不知道数组中有"ProdID“和"Name”索引。创建数组时,必须使用=>运算符定义索引。
如果array_unshift($RView, array("ProdID" => $row_rsProd["ProdID"], "Name"...))
所以改变array_unshift(.)只为$RView[] = $row_rsProd
这样,索引就是preserved.
因此,您可以将foreach循环中的内容更改为
echo "<li>..." $prod[0] $prod[1] $prod[2]
希望这能帮上忙!
https://stackoverflow.com/questions/810003
复制相似问题