Показать содержимое $ _POST один пока один - PullRequest
0 голосов
/ 03 мая 2019

Здравствуйте. Я отправляю форму методом POST и хочу, чтобы ее содержимое отображалось по очереди, кроме последнего.До сих пор я использую

<?php foreach($_POST as $data){
        echo $data;
} 
?>

, который отображает весь массив $ _POST, как я могу сделать это с помощью общего цикла «for», чтобы не отображать последний элемент массива?Кажется, он не работает

    <?php 
    $length=count($_POST)-1;
    for($i=0; $i<$length; $i++) {
        echo $_POST[$i];
        ?>
        <br>
    <?php } ?>

Я получаю 5 ошибок, неопределенное смещение от 0 до 4, где присутствует эхо-линия

Ответы [ 2 ]

1 голос
/ 03 мая 2019

Выполните следующие действия:

<?php
    $counter = 0;
    $lastItemOrder = count($_POST);
    foreach($_POST as $value) {
        $counter++;
        if( $counter !== $lastItemOrder) {
            echo $value;
        }?>
        <br><?php 
    } ?>

Ваш цикл для получения только числового индекса, такого как $ _POSR [0], $ _POST [1] ... Это просто сработало бы, если бы в HTML имя атрибута входных элементов также было числовым, например, name = "0" и т. д.

foreach выполняет цикл над массивом независимо от индекса, числа или строки.

Попробуйте это:

<?php
    $counter = 0;
    $lastItemOrder = count($_POST);
    foreach($_POST as $index => $value) {
        $counter++;
        if( $counter !== $lastItemOrder) {
            echo $index . ": " . $value;
        }?>
        <br><?php 
    } ?>
0 голосов
/ 03 мая 2019

хорошо, теперь я понял, я не знал разницу между ассоциативными и числовыми массивами.Я исправил это с помощью оператора if

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...