Цикл по значениям $_POST

У меня есть очень простая форма на моем сайте.

Я запускаю этот 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 вместо обеих строк.

Я чувствую, что мне не хватает чего-то очевидного здесь.

@brombeer Даже тогда кажется, что он просто зацикливает одну строку.

michaelmcgurk 02.02.2023 12:23

Ваши рекорды в ключе data

zanderwar 02.02.2023 12:24

Этот код не генерирует этот вывод из этого ввода ???? Он генерирует 33715

RiggsFolly 02.02.2023 12:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
3
60
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проще говоря, вам нужно зациклить элементы $_POST['data'], а не просто $_POST.

echo '<pre>';
var_dump($_POST);
echo '</pre>';

foreach($_POST['data'] as $key => $item)
{
    echo $key.':'. $item['row_id'];

}

Удивительный. Это прекрасно работает. Большое спасибо, что нашли время.

michaelmcgurk 02.02.2023 12:28

Вы зацикливаетесь не на том, что нужно, и одновременно используете два разных метода, чтобы зацикливаться на одном и том же.

  1. Вы установили $i на 0
  2. Ваша петля foreach достигает $_POST['data']
  3. Вы меняете $i на 1
  4. Вы получаете доступ $_POST['data'][1]
  5. Вы дойдете до конца цикла

Вам нужно зациклиться на том, что вы действительно хотите зациклить.

data — это фиксированная вещь, так что это сложно запрограммировать. Затем выполните цикл по массиву, который он содержит.

Используйте переменную $i только в том случае, если вы используете обычный цикл for.

Когда вы используете foreach, вы используете переменные, которые вы определяете внутри него (в данном случае $key и $value).

foreach($_POST['data'] as $key => $value) {
    echo $value['row_id']
}

Большое спасибо, что собрали это вместе. Немного ржавый с PHP, так что очень ценю помощь.

michaelmcgurk 02.02.2023 12:29

Другие вопросы по теме