访问用于数据保留(PHP)的输入名称中使用的数组


Accessing array used in input name for data retention (PHP)

我正在重写一个表单,该表单使用带数字的变量,而不是输入元素中名称和id的数组。(例如agency1、agency2、agency 3…)

我知道我可以做一些类似的事情:

for ($i = 0; $i < $AMOUNT_OF_AGENCIES; $i++)
{
  <label for="agency<?= $i; ?>">Agency Name</label><input type="text" name="agency[]" id="agency<?= $i; ?>">
}

输出我需要的输入元素,并在一个更容易使用的数组中,但我也希望在表单的另一部分由于验证错误而出错的情况下保留数据。

我能做这个吗?

<input type="text" name="agency[]" id="agency<?= $i; ?>" value="<?= htmlspecialchars($_POST['agency[$i]']); ?>">

这几乎是正确的:你必须使用

$_POST['agency'][$i]

而不是

$_POST['agency[$i]']