У меня есть очень простая форма на моем сайте.
Я запускаю этот PHP, чтобы зациклить содержимое формы:
echo '<pre>';
var_dump($_POST);
echo '</pre>';
$i = 0;
foreach($_POST as $key => $value)
{
$i++;
echo $value[$i]['row_id'];
}
Я получаю следующее:
array(1) {
["data"]=> array(2) {
[1]=> array(2) {
["row_id"]=> string(5) "33714"
["sport"]=> string(8) "swimming"
}
[2]=> array(2) {
["row_id"]=> string(5) "33715"
["sport"]=> string(8) "football"
}
}
}
33714
Мой PHP отображает только идентификатор первой строки 33714 вместо обеих строк.
Я чувствую, что мне не хватает чего-то очевидного здесь.
Ваши рекорды в ключе data
Этот код не генерирует этот вывод из этого ввода ???? Он генерирует 33715






Проще говоря, вам нужно зациклить элементы $_POST['data'], а не просто $_POST.
echo '<pre>';
var_dump($_POST);
echo '</pre>';
foreach($_POST['data'] as $key => $item)
{
echo $key.':'. $item['row_id'];
}
Удивительный. Это прекрасно работает. Большое спасибо, что нашли время.
Вы зацикливаетесь не на том, что нужно, и одновременно используете два разных метода, чтобы зацикливаться на одном и том же.
$i на 0foreach достигает $_POST['data']$i на 1$_POST['data'][1]Вам нужно зациклиться на том, что вы действительно хотите зациклить.
data — это фиксированная вещь, так что это сложно запрограммировать. Затем выполните цикл по массиву, который он содержит.
Используйте переменную $i только в том случае, если вы используете обычный цикл for.
Когда вы используете foreach, вы используете переменные, которые вы определяете внутри него (в данном случае $key и $value).
foreach($_POST['data'] as $key => $value) {
echo $value['row_id']
}
Большое спасибо, что собрали это вместе. Немного ржавый с PHP, так что очень ценю помощь.
@brombeer Даже тогда кажется, что он просто зацикливает одну строку.