-1

有没有办法通过索引访问 POST 数据,而不是通过键访问它?我希望以下代码可以工作:

for($x = 0; $x < count($_POST); $x++)
    echo $x . ": " . $_POST[$x];

(是的,我知道循环中的计数不好,只是为了简单起见)

问题是显然我不能通过索引访问 $_POST 变量,它必须通过键访问。我不能使用键的原因是因为我将有可变的表单数据,所以在 POST 中可能或多或少,所以我需要能够循环通过可变数量的键,具有变量名称。

任何帮助表示赞赏!

编辑:澄清一下,我很困惑,因为我之前假设 PHP 数组的行为几乎像 C++ 枚举。

4

6 回答 6

3

有没有办法通过索引访问 POST 数据,而不是通过键访问它?

不,它没有数字索引。

我不能使用键的原因是因为我将有可变的表单数据,所以在 POST 中可能或多或少,所以我需要能够循环通过可变数量的键,具有变量名称。

您可以遍历关联数组。请参阅 的文档foreach

foreach (array_expression as $key => $value)
  statement
于 2012-07-27T11:33:53.953 回答
0

在技​​术上是可能的,虽然foreach是优越的:

$postVals = array_value($_POST);
$postCount = count($_POST);
for($x = 0; $x < $postCount; $x++)
    echo $x . ": " . $postVals[$x];
于 2012-07-27T11:43:23.310 回答
0

使用 foreach() 代替,它也适用于数值数组。

foreach ($_POST as $key=>$val)
    echo sprintf("%s: %s\n", $key, $val);
于 2012-07-27T11:33:14.333 回答
0

为什么不只使用foreach

foreach ($_POST as $key => $value) {
}

?

于 2012-07-27T11:34:03.943 回答
0
foreach($_POST as $key=>$value) {
    echo $key. ":" .$value;
}
于 2012-07-27T11:34:30.547 回答
0

索引和键是一回事。键或者是一个数字(例如$_POST[0])或者它是一个字符串(例如$_POST['foo'])。不能两者兼而有之。您无法$_POST['foo']通过$_POST[0].

于 2012-07-27T11:34:39.983 回答