【发布时间】:2018-11-28 13:01:30
【问题描述】:
我在更新我创建的多维数组中的数量值时遇到了一些困难,真的希望你能帮助我纠正我出错的地方;
.
背景
我有两个“项目”,它们都有一个简单的表单标签,后跟一个具有唯一值的隐藏输入字段(第一个项目为 1,第二个项目为 2)。 该按钮将仅使用 POST 方法指向同一页面。
然后页面右侧的 div 将加载一个“篮子”,该篮子将使用这些帖子值并将它们添加到数组中。
当再次使用“添加”按钮时,该值应更新为 +1,而不是创建另一个子数组。
.
目前正在发生的事情
目前,当我第一次单击“添加”时,它会按预期添加数组;
但是,当第二次单击“添加”时,它会添加第二个数组,而不是数量上的 +1。
在第三次点击“添加”时,它现在确实找到了原始值并按照我的预期进行了更新,如果我一次又一次点击它会继续更新数量
这似乎是我第二次点击“添加”。
.
脚本
<?php session_start();
function in_array_r($needle, $haystack, $strict = false) {
foreach ($haystack as $item) {
if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
return true;
}
}
return false;
}
if (ISSET($_POST["prod"]))
{
if(in_array($_POST["prod"],$_SESSION["cart"])==TRUE)
{
$_SESSION["cart"][0] =
array($_POST["prod"],$_POST["name"],$_SESSION["cart"][0][2]+1);
}
else{
echo 'running else';
$_SESSION["cart"]=array($_POST["prod"],$_POST["name"],1);}}
if ($_POST['e']=='1')
{
$_SESSION['cart'] = '';
}
echo '<br /><br />';
print_r($_SESSION["cart"]);
}
示例表格
<form action="test.php" method="post" enctype="application/x-www-form-urlencoded">
MAST-O-MIR<br/>
img<br/>
£2.00<br/>
<input type="hidden" value="1" name="prod" />
<input type="hidden" value="MAST-O-MIR" name="name" />
<button class="plus-btn" type="Submit">Add</button>
</form>
另外,您可能会从我的脚本中注意到,当您“添加”第二个项目时,它实际上会通过从头开始创建数组来覆盖第一个项目,所以如果您可以帮助我解决其中一个或两个问题,我真的将不胜感激!
在此先感谢大家!
【问题讨论】:
-
如果没有示例表格,这很难理解。
标签: php algorithm multidimensional-array logic