有没有办法通过索引访问POST数据,而不是通过密钥访问它?我想要使用以下代码:
for($x = 0; $x < count($_POST); $x++)
echo $x . ": " . $_POST[$x];
(是的,我知道循环中的计数很糟糕,只是为了简单起见而使用它)
问题是显然我无法通过索引访问$ _POST变量,它必须通过key访问。我不能使用密钥的原因是因为我将要有变量表单数据,所以在POST中可能会有更多或更少,所以我需要能够循环使用变量名称的可变数量的键。
感谢任何帮助!
编辑:为了澄清,我很困惑,因为我以前认为PHP数组的行为几乎与C ++枚举一样。答案 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)
答案 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];