我的问题可能看起来很愚蠢,但我真的被困在这里。
我知道$ _SESSION是一个全局变量,但我似乎不知道如何检索它存储的值。
例如:
<?php
if(isset($_SESSION["cart_products"]))
{
foreach ($_SESSION["cart_products"] as $cart_itm)
{
//set variables to use in content below
$product_name = $cart_itm["product_name"];
$product_code = $cart_itm["product_code"];
echo '<p>'.$product_name.'</p>';
echo '<p><input type="checkbox" name="remove_code[]" value="'.$product_code.'" /></p>';
}
}
echo $_SESSION["cart_products"];
?>
在这里你可以看到,$_SESSION["cart_products"]
拥有一些价值(产品名称,产品代码等信息)。现在,问题是我只想回复$_SESSION["cart_products"]
中存储的所有产品名称。
由于它是购物车列表,因此它包含多个产品详细信息。但是,当我回显$product_name
时,它只显示列表中最后一个产品的名称。回显$_SESSION["cart_products"]
会导致array to string
错误。
请告诉我如何列出所有以,
分隔的产品名称。
任何帮助将不胜感激。 谢谢你提前。
PS:我已经尝试过使用implode()
功能。
答案 0 :(得分:0)
显示所有分隔的产品名称,请使用此代码。
$allProductName = '';
$prefix = '';
foreach ($_SESSION["cart_products"] as $cart_itm)
{
$allProductName .= $prefix . '"' . $product_name. '"';
$prefix = ', ';
}
echo $allProductName;
答案 1 :(得分:0)
这是您的代码的编辑版本
<?php
//you need to start session first
session_start();
$item = ["product_name" => "BMW", "product_code" => "540M"];
$list = array( $item, $item );
// Assuming you session list
$_SESSION[ "cart_products" ] = $list;
if(isset( $_SESSION["cart_products"])) {
foreach ( $_SESSION["cart_products"] as $cart_itm ) {
//set variables to use in content below
$product_name = $cart_itm["product_name"];
$product_code = $cart_itm["product_code"];
echo '<p>'.$product_name.'</p>';
echo '<p><input type="checkbox" name="remove_code[]" value="'.$product_code.'" /></p>';
}
// to print names seperated by ','
$temp = "";
foreach ( $_SESSION["cart_products"] as $cart_itm ) {
$temp .= $cart_itm["product_name"] . ", ";
}
echo $temp;
}
// you cant print array using echo directly
print_r( $_SESSION["cart_products"] );
?>
答案 2 :(得分:0)
最后,在@Christophe Ferreboeuf的帮助下,我得到了我的查询答案。但是,仍然需要进行一些修改。
以下是更正后的代码:
$allProductName = '';
$prefix = '';
foreach ($_SESSION["cart_products"] as $cart_itm)
{
$allProductName .= $prefix . '"' . $cart_itm["product_name"]. '"';
$prefix = ', ';
}
echo $allProductName;