我有一个表单,在提交时为我提供了多个数组。我的问题是,是否有一种智能方法可以回显(向用户显示)所有数组而不是为每个数组做一个foreach?
解决方案是使用foreach循环执行函数吗?
来自TASKS输入的HTML:
<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>";
}
答案 0 :(得分:1)
所有数组都应该并行索引。您只需要使用其中一个索引,然后可以将其用作所有其余索引:
foreach ($tasks as $i => $task) {
echo "Task $i: $task<br>";
echo " User: {$user[$i]}<br>";
echo " Pickup at: {$pickup_at[$i]}<br>";
...
}
答案 1 :(得分: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));
答案 2 :(得分:0)
而不是
foreach($tasks as $key => $keys) {
echo $key ."<br>";
}
你可以这样做:
echo(implode('<br>', $tasks));
这会在<br>
的元素之间放置$task
并生成一个字符串。根据您可能需要的echo
字符串的HTML上下文,或者可能不需要在最后一个元素后附加额外的<br>
。
答案 3 :(得分:0)
我认为您的表单存在问题。你的HTML应该是这样的:
<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);
答案 4 :(得分:-1)
echo "<pre>"; print_r($tasks); echo "</pre>";
答案 5 :(得分:-1)
您需要进行某种迭代 - foreach
是最明显的。您还可以使用其他本机函数,例如array_walk
:
array_walk($array, function($val, $key) {
echo $key, PHP_EOL;
});
但它确实在这里添加了任何东西。我坚持使用foreach
或var_dump
。