I have following table.
<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>
And test.php file
<?php
$myarray = array( $_POST);
foreach ($myarray as $key => $value)
{
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
?>
But it is only returning this: <p>0</p><p>Array</p><hr />
What I'm doing wrong?
$_POST
is an array in itsself you don't need to make an array out of it. What you did is nest the$_POST
array inside a new array. This is why you printArray
. Change it to:Came across this 'implode' recently.
May be useful to output arrays. http://in2.php.net/implode
Just:
$_POST is already an array, so you don't need to wrap array() around it.
Try this instead:
NOTE: This works because your
id
andvalue
arrays are symmetrical. If they had different numbers of elements then you'd need to take a different approach.this will work, your first solution is trying to print array, because your value is an array.
You are adding the
$_POST
array as the first element to$myarray
. If you wish to reference it, just do:However, this is probably not necessary, as you can just call it via
$_POST
in your script.