如何print_r $ _POST数组?

Ila*_*sda 8 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="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>
Run Code Online (Sandbox Code Playgroud)

和test.php文件

<?php 

  $myarray = array( $_POST);
  foreach ($myarray as $key => $value)
  {
    echo "<p>".$key."</p>";
    echo "<p>".$value."</p>";
    echo "<hr />";
  }

?>
Run Code Online (Sandbox Code Playgroud)

但它只返回这个: <p>0</p><p>Array</p><hr />

我做错了什么?

bil*_*rds 26

foreach循环工作得很好,但你也可以简单

print_r($_POST);
Run Code Online (Sandbox Code Playgroud)

或者在浏览器中进行漂亮打印:

echo "<pre>";
print_r($_POST);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)


Sen*_*kin 13

<?php 

 foreach ($_POST as $key => $value) {
  echo '<p>'.$key.'</p>';
  foreach($value as $k => $v)
  {
  echo '<p>'.$k.'</p>';
  echo '<p>'.$v.'</p>';
  echo '<hr />';
  }

} 

 ?>
Run Code Online (Sandbox Code Playgroud)

这将工作,你的第一个解决方案是尝试打印数组,因为你的值是一个数组.


Bri*_*oll 5

$ _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 />";

} 

 ?>
Run Code Online (Sandbox Code Playgroud)

注意:这是有效的,因为您idvalue阵列是对称的.如果他们有不同数量的元素,那么你需要采取不同的方法.