从 $_SESSION 中检索值并使用另一个变量输出



我知道$_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错误。

如何列出所有用,分隔的产品名称?

我已经尝试使用implode()功能。

用于显示所有由 分隔的产品名称,请使用此代码。

$allProductName = '';
 $prefix = '';
 foreach ($_SESSION["cart_products"] as $cart_itm)
{
    $allProductName .= $prefix . '"' . $product_name. '"';
    $prefix = ', ';
}
echo $allProductName;

这是代码的编辑版本

<?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"] );
    ?>

最后,我在@Christophe Ferreboeuf的帮助下得到了问题的答案。但是,仍然需要一些修改。

以下是更正后的代码:

$allProductName = '';
 $prefix = '';
 foreach ($_SESSION["cart_products"] as $cart_itm)
{
    $allProductName .= $prefix . '"' . $cart_itm["product_name"]. '"';
    $prefix = ', ';
}
echo $allProductName;

相关内容

  • 没有找到相关文章

最新更新