我有每個循環,當循環輸出保存在籃子陣列中的物品。這很好,但我想在會話變量的每個項目中存儲一些東西,所以我可以在其他地方使用這些信息,我試圖在foreach循環內創建會話變量,但當然每次變量都需要有不同的名稱它通過一個不同的項目循環。我研究瞭如何動態創建變量,我無法弄清楚。這是我一直覺得會派上用場的東西,但是因爲看起來難以避免,但現在我想知道它是否可行。如何在PHP中爲每個循環創建變量併爲其賦值?
這裏是我的每個循環的代碼,你可以我想創建一個在籃下的每個項目三個會話變量裏面看到:
foreach ($basketarray as $value)
{
echo "<div id='basketitems'><br/>
".$value['name']."<br/>
".$value['id']."<br/>
£".$value['price']."<br/>
".$value['size']."<br/>
Quantity: ".$value['quantity']."<br/><br/>
<img id='searchimage' src=".$value['picture']." width='210' height='250' /><br/>";
$_SESSION['Bprodid'] = $value['id'];
$_SESSION['Bprodquantity'] = $value['quantity'];
$_SESSION['Bprodprice'] = $value['price'];
echo "<form action='deletefrombasket.php' name='basketdelete$items' id='basketdelete$items' method='POST'>
<input type='submit' name='".$value['basketid']."' value='Remove' id='basketid' name='basketid'/>
</form></div>";
$items++;
}
?>
<div id='basketdetails'>
<?php
echo "<p>items ". number_format($basketitems)."</p>";
echo "<p>Total £ ".number_format($baskettotal, 2, '.', ',')."</p>";
if($basketitems && $baskettotal !=0)
{
echo "<a href='clear.php'>Empty Basket</a>";
echo "<a href='checkout.php'>Checkout</a>";
}
所以有可能做這樣的事情?我試圖通過使用計數器來創建可變名稱,但我沒有成功。
我將不勝感激任何意見。
謝謝
感謝您的輸入,我正在測試您的解決方案,但我想知道如何才能讓此功能保留多個值?假設我使用$ _SESSION ['my_values'] [$ value ['id']] ['price'] = $ value ['price'];在循環內部,然後在外部,我使用echo $ _SESSION ['my_values'] [$ value ['id']] ['price']來回顯此問題,它只回顯最後一個值。在我的購物籃中,我有3件商品用於測試,他們有三件價格需要存儲,這只是回聲的最後價格。我想知道如何正確使用您的解決方案,我錯過了什麼? 非常感謝! – deucalion0 2012-04-26 22:17:57
@ deucalion0技巧是[[$ value ['id']]';在你的'$ _SESSION ['my_values']'你現在有3個值,你可以通過它們的ID直接訪問,或者你可以在$ _SESSION ['my_values']數組中使用'foreach'來循環訪問它們。你循環的每個項目都是一個數組,其中包含「數量」和「價格」(或任何你所添加的)鍵。我會編輯我的答案。 – jeroen 2012-04-26 23:15:00
非常感謝我現在就試試這個!!!!! – deucalion0 2012-04-26 23:42:08