如何多次提交单个表单值并在每次刷新页面时将它们存储(保留)在一个数组中?

How to submit a single form value multiple times and store (preserve) them in an array each time that I refresh my page?

尝试 1:这显示了我想要实现的目标。相同的数组但不同的键和值 pair.When 打印出来,它列出了所有的键和值。

<?php

$rental[]=array('day'=>1,'rate'=>10);
$rental[]=array('day'=>2,'rate'=>20);
$rental[]=array('day'=>3,'rate'=>30);
$rental[]=array('day'=>4,'rate'=>40);
print_r($rental);
?>

尝试 2:现在,我使用一个表单提交多个 times.I 希望每次提交表单时键和值都存储在一个数组中。但是发生的是,最后一个值对覆盖了前面的 one.Therefore 只显示了一对。到目前为止,我可以在会话的帮助下存储它们。但我只是想知道是否有办法通过同一页面上的 php 数组来实现它?

<?php

$rental[]=array('day'=>$_POST['days'],'rate'=>$_POST['rental']);

print_r($rental);
?>
<form action="#" method="post">
   Number of Days: <input type="text" name="days" value=""><br/>
   Rental rate: <input type="text" name="rental" value=""><br/>
   <input type="submit" name="add_rental_rate" value="Add Rental Rate">
</form>

你可以使用session来实现你想要的,看这段代码:

<?php  
session_start();

if(isset($_POST['days']) && isset($_POST['rental'])){        

$_SESSION['info'][] = array($_POST['days'] => $_POST['rental']);

}

if(isset($_SESSION['info'])) {
for($i = 0; $i < count($_SESSION['info']); $i++) {
  foreach($_SESSION['info'][$i] as $days => $rental){
    echo '<p>' . $days . '<br>';
    echo $rental . '</p>';
 }
} 
}
?>

<form action="#" method="post">
   Number of Days: <input type="text" name="days" value=""><br/>
   Rental rate: <input type="text" name="rental" value=""><br/>
   <input type="submit" name="add_rental_rate" value="Add Rental Rate">
</form>

你应该阅读一些关于会话的文档:

http://php.net/manual/en/intro.session.php