使用echo函数打印元素的多维会话数组


Multidimensional session array printing the elements by using echo function

我有一段代码需要使用echo函数来打印会话数组中的变量,另一方面,每次用户选择产品时,我需要逐个添加价格。价格变量是一个字符串。代码如下:

    if (!is_array($_SESSION['products']['names'])){
      $_SESSION['products']['names']['name'] = array();
      $_SESSION['products']['names']['prices']= array();
      }else {
     $pros = $_SESSION['products']['names']['name'];
     if (in_array($product->getName(), $pros, true)){
         echo 'The product is available in your basket';
} else {
 $prozuct = array_push($_SESSION['products']['names']['name'],$product->getName());
                          array_push($_SESSION['products']['names']['prices'], $product->getPrice(Currency::getCurrentCurrency()));
     foreach ($_SESSION['products'] as  $id=>$arr){
     for ($i=0;$i<count($arr);$i++){
      echo $arr['name'][$i];
       }                             
  }
 }   
}

我收到的错误是:

注意:未定义的偏移量:1英寸/Users

此外,我知道我可以使用print_r,但在我的情况下,我想逐一添加价格,并计算并向用户显示总额。

无需循环:

$namesHtml = implode("<br>", $_SESSION['products']['names']['name']);
$total = array_sum($_SESSION['products']['names']['price']);
echo sprintf("<p>Products: <br>%s<br>Total Cost: %s", $namesHtml, $total);