2014-02-06 2 views
0

Массивамассива приращение сессии

$item= "stackoverflow"; 
$price = "30.00"; 
$total += ($sum * $price); 

$cs1_array = array(); 
$cs1_array[] = array(
    'item'=>array('item'=>$item, 'price'=>$price, 'quantity' => $sum), 
    'total' => $total 
); 
$_SESSION['session_inputs'] = $cs1_array; 

Foreach петля на другой странице

$cs1_array = $_SESSION['session_inputs']; 
echo "<table>"; 
foreach ($cs1_array as $item){ 
echo "<tr>"; 
foreach ($item as $item2){ 
    echo "<td>{$item2['item']}</td><td>{$item2['price']}</td><td>{$item2['quantity']}</td>"; 
} 

echo "<td>{$item['total']}</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 

Выше коды, которые используются для отображения элементов в моем массиве, но он будет отображать только из 1 строки вывода , как этот

Stackoverflow 30.00 2 60

То, что я хочу, когда я отправить форму HTML, он добавит новую строку новое значение в массив и вывод будет выглядеть следующим образом, если я представить 3 раза

StackOverflow 30,00 2 60

StackOverflow 30.00 2 60

StackOverflow 30,00 2 60

ответ

1

Вы перезапись $_SESSION['session_inputs'] каждый раз. Просто сделайте это массив и добавить к нему:

$cs1_array = array(
    'item'=>array('item'=>$item, 'price'=>$price, 'quantity' => $sum), 
    'total' => $total 
); 
$_SESSION['session_inputs'][] = $cs1_array; 
+1

В этом случае, '$ cs1_array' должен быть один одномерный массив, а не массив массивов, как указал ОП. –

+0

С этим было бы легче работать. Обновил мой ответ соответственно. –

+0

Спасибо, ребята, я понял. – user3277691

Смежные вопросы