Вывести несколько массивов?

0

У меня есть форма, которая дает мне несколько массивов при отправке. Мой вопрос в том, есть ли умный способ вывести (показать пользователя) все массивы вместо того, чтобы делать foreach для каждого массива?

Может ли решение выполнить функцию с циклом foreach?

HTML с входа TASKS:

<td><input type="checkbox" name="tasks[<?php echo($value[0]);?>]"value=<?php echo($key[0]);?>></td>

Мой скрипт PHP:

if(isset($_POST['submit'])) {
     $tasks = $_POST['tasks'];
     $user = $_POST['user'];
     $pickup_at = $_POST['pickup_at'];
     $message = $_POST['message'];
     $price = $_POST['price'];
     $part_missing = $_POST['part_missing'];

Foreach ex. в массиве TASKS

foreach($tasks as $key => $keys)
{
   echo $key ."<br>";
}
  • 3
    Может быть: var_dump ($ _ POST) или print_r ($ _ POST)
  • 0
    ... @HarryFink Я только что обновил свой вопрос. Мне нужно показать результат пользователю.
Теги:
arrays

6 ответов

1
Лучший ответ

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

foreach ($tasks as $i => $task) {
    echo "Task $i: $task<br>";
    echo "  User: {$user[$i]}<br>";
    echo "  Pickup at: {$pickup_at[$i]}<br>";
    ...
}
0

Я думаю, что есть проблемы с вашей формой. Ваш html sholud будет следующим:

<td><input type="checkbox" name="tasks[]" value="<?php echo($value[0]);?>"></td>

Установлено:

 <td><input type="checkbox" name="tasks[<?php echo($value[0]);?>]"value=<?php echo($key[0]);?>></td>

После этого вы можете напечатать такие значения:

  echo implode(',',$tasks);
0
foreach($tasks as $key => $keys)
{
   echo $key ."<br>";
}

Если его просто использовать для добавления ключей BR в другие способы,

// will give you same output that foreach() gives you.
echo implode("<br>", array_keys($tasks));
0

Вместо

foreach($tasks as $key => $keys) {
    echo $key ."<br>";
}

ты можешь сделать:

echo(implode('<br>', $tasks));

Это ставит <br> между элементами $task и создает строку. В зависимости от контекста, HTML, где echo строки, вам может понадобиться или, возможно, потребуется, чтобы не добавлять дополнительные <br> после последнего элемента.

-1

Вам нужно будет сделать какую-то итерацию - foreach будет наиболее очевидным. Вы также можете использовать другие встроенные функции, такие как array_walk:

array_walk($array, function($val, $key) {
   echo $key, PHP_EOL;
});

Но это ничего не добавляет. Я бы придерживался foreach или var_dump.

-1
echo "<pre>"; print_r($tasks); echo "</pre>";
  • 0
    echo '<pre>' . print_r($tasks, true) . '</pre>'; это намного лучше, чем использовать 3 утверждения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню