使用PHP。我正在尝试从二维$ _POST数组的第二维检索$ _POST值,而实际上并不知道所发布值的名称。这就是我所拥有的;它不起作用。
foreach($_POST as $k=>$v) {
$$k=$v;
if (is_array($k) == true) {
foreach($k as $value) {
echo $value;
echo "<br>";
}
}
}
我用过
echo '<pre>';
print_r($_POST);
echo '</pre>';
确保数组中有值,并且存在。它显示:
Array
(
[colors] => Array
(
[0] => red
[1] => yellow
[2] => blue
[3] => black
)
)
这是我的表单复选框的样子:
<input name="colors[]" type="checkbox" value="red" />
<input name="colors[]" type="checkbox" value="yellow" />
<input name="colors[]" type="checkbox" value="blue" />
<input name="colors[]" type="checkbox" value="black" />
如果我不知道数组的名称,如何从数组中的数组中获取值。这个名字并不总是颜色?
答案 0 :(得分:4)
你快到了。这应该有效:
foreach($_POST as $k=>$v) {
if (is_array($v) == true) {
foreach($v as $value) {
echo htmlspecialchars($value); // Always sanitize when you output! :)
echo "<br>";
}
}
}
答案 1 :(得分:1)
上述代码不起作用的简单原因是因为您正在检查数组key
是否为数组,而不是实际值本身。换掉......
if (is_array($k) == true)
与
if (is_array($v) == true)
在嵌套的foreach子句中执行相同操作。
它应该可以正常工作。另外,您可以删除布尔比较,is_array返回一个布尔值,您不会使它比现在更明确。
答案 2 :(得分:0)
foreach( $_POST as $key => $item ) {
if ( is_array($item) ) { // you want to check if the value is an array, not the key
foreach($item as $index => $value) {
echo $value . "\n<br>";
}
}
}