按索引访问POST数据

时间:2012-07-27 11:31:34

标签: php post loops

有没有办法通过索引访问POST数据,而不是通过密钥访问它?我想要使​​用以下代码:

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

(是的,我知道循环中的计数很糟糕,只是为了简单起见而使用它)

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

感谢任何帮助!

编辑:为了澄清,我很困惑,因为我以前认为PHP数组的行为几乎与C ++枚举一样。

6 个答案:

答案 0 :(得分:3)

  

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

不,它没有数字索引。

  

我无法使用密钥的原因是因为我将要有可变的表单数据,所以在POST中可能会有更多或更少,所以我需要能够遍历可变数量的键,变量名称。

您可以循环关联数组。请参阅foreach的文档。

foreach (array_expression as $key => $value)
  statement

答案 1 :(得分:0)

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

foreach ($_POST as $key=>$val)
    echo sprintf("%s: %s\n", $key, $val);

答案 2 :(得分:0)

为什么不使用foreach

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

答案 3 :(得分:0)

foreach($_POST as $key=>$value) {
    echo $key. ":" .$value;
}

答案 4 :(得分:0)

索引和键是一回事。密钥可以是数字(例如$_POST[0]),也可以是字符串(例如$_POST['foo'])。它不可能两者兼而有之。您无法通过$_POST['foo']访问$_POST[0]

答案 5 :(得分:0)

技术上可行,但foreach更胜一筹:

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