Php 如何打印\u r$\u POST数组?
我有下表Php 如何打印\u r$\u POST数组?,php,variables,post,Php,Variables,Post,我有下表 <form method="post" action="test.php"> <input name="id[]" type="text" value="ID1" /> <input name="value[]" type="text" value="Value1" /> <hr /> <input name="id[]" type="text" value="ID2" /> <input name
<form method="post" action="test.php">
<input name="id[]" type="text" value="ID1" />
<input name="value[]" type="text" value="Value1" />
<hr />
<input name="id[]" type="text" value="ID2" />
<input name="value[]" type="text" value="Value2" />
<hr />
<input name="id[]" type="text" value="ID3" />
<input name="value[]" type="text" value="Value3" />
<hr />
<input name="id[]" type="text" value="ID4" />
<input name="value[]" type="text" value="Value4" />
<hr />
<input type="submit" />
</form>
和test.php文件
<?php
$myarray = array( $_POST);
foreach ($myarray as $key => $value)
{
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
?>
但它只返回以下内容:0数组
我做错了什么?只是:
foreach ( $_POST as $key => $value) {
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
foreach($\u发布为$key=>$value){
回显“”$key.”;
回声“”$value.“”;
回声“
”;
}
您正在添加$\u POST
数组作为$myarray
的第一个元素。如果您希望引用它,只需执行以下操作:
$myarray = $_POST;
但是,这可能不是必需的,因为您可以在脚本中通过$\u POST
调用它。$\u POST
本身就是一个数组,您不需要从中生成数组。您所做的是将$\u POST
数组嵌套在一个新数组中。这就是为什么要打印Array
。
将其更改为:
foreach ($_POST as $key => $value) {
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
foreach($\u发布为$key=>$value){
回显“”$key.”;
回声“”$value.“”;
回声“
”;
}
$\u POST已经是一个数组。试试这个:
foreach ($_POST as $key => $value) {
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
foreach($\u发布为$key=>$value){
回显“”$key.”;
回声“”$value.“”;
回声“
”;
}
$\u POST已经是一个数组,因此不需要将array()包装在它周围
请尝试以下方法:
<?php
for ($i=0;$i<count($_POST['id']);$i++) {
echo "<p>".$_POST['id'][$i]."</p>";
echo "<p>".$_POST['value'][$i]."</p>";
echo "<hr />";
}
?>
注意:这是因为您的id
和value
数组是对称的。如果它们有不同数量的元素,那么您需要采取不同的方法。为什么要将$\u POST
数组包装在一个数组中
您可以使用以下命令访问“id”和“value”数组
// assuming the appropriate isset() checks for $_POST['id'] and $_POST['value']
$ids = $_POST['id'];
$values = $_POST['value'];
foreach ($ids as $idx => $id) {
// ...
}
foreach ($values as $idx => $value) {
// ...
}
这将起作用,您的第一个解决方案是尝试打印数组,因为您的值是数组。因为您有嵌套数组,所以我实际上建议使用递归方法:
function recurse_into_array( $in, $tabs = "" )
{
foreach( $in as $key => $item )
{
echo $tabs . $key . ' => ';
if( is_array( $item ) )
{
recurse_into_array( $item, $tabs . "\t" );
}
else
{
echo $tabs . "\t" . $key;
}
}
}
recurse_into_array( $_POST );
foreach循环工作得很好,但是您也可以
print_r($_POST);
或在浏览器中进行漂亮的打印:
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo”“;
打印(邮政美元);
回声“;
最近遇到了这种“内爆”
可能对输出数组有用
因为您需要查看测试结果。下面的代码是简单而优雅的解决方案
echo”“;
打印(邮政美元);
回声“;
此外,您可以使用print\u r($\u POST)
或var\u dump($\u POST)
可视化数组。您不能回显$value
,因为它同时是id
和value
的数组keys@Phil好吧,你肯定可以回显数组=)我应该说“您不能回显$value
并期望看到任何有用的内容" ;-)这将只返回4个数组中的2个。另外,我还想显示字段的值-插入到输入中的内容。这将返回id数组
值数组
仅4个中的2个。另外,我想显示字段的值-输入中插入的内容。好的,对不起,没有显示名称参数是数组的部分。我会编辑的。小心这个方法。文本输入可以,但如果输入是混合的(比如文本和复选框),计数将与未选中的不匹配checkboxes@Phil因此,我在答案上做了笔记。@phil-实际上,我将主要使用这个复选框。解决方案是什么?是否有理由尝试将多个文本字段收集到同一个名称中?另外,如果您不关心它看起来有多漂亮,echo“”。打印($value,TRUE)。“”
可能是你的朋友。@Kyle-最后这将是一个大的输入表,用于更新数据库。你是如何填写这个表的?假设文本已经存在于某个地方,那么*.sql
文件不是一个不错的选择吗?@Kyle-对我来说这是最简单的-但对一些非技术性的人来说-我们正在删除表格DB的所有内容的文件,填写/更改输入并提交更新是正确的方法。注意,这可能会输出值,但不会输出键
echo "<pre>";
print_r($_POST);
echo "</pre>";
echo 'Variables: ' . implode( ', ', $_POST);
echo "<pre>";
print_r($_POST);
echo "</pre>";