Php 如何通过以下数组类型的语法访问$\u POST项?
如果我发送了四个POST变量,但是第二个变量-我不知道Php 如何通过以下数组类型的语法访问$\u POST项?,php,arrays,post,cgi,Php,Arrays,Post,Cgi,如果我发送了四个POST变量,但是第二个变量-我不知道name=”“标记将被删除;我如何访问它?我可以使用$\u POST[1]吗?您可以循环使用它: foreach ($_POST as $k => $v) { if (substr($k, 0, 3) == 'id_') { // do stuff } } 但这实际上取决于搜索的标准。在上面的示例中,它将拉取所有以“id_”开头的POST变量。如果您有一个不同的/更好的标准,您可能可以更简单地执行此操作。您可以循环:
name=”“
标记将被删除;我如何访问它?我可以使用$\u POST[1]
吗?您可以循环使用它:
foreach ($_POST as $k => $v) {
if (substr($k, 0, 3) == 'id_') {
// do stuff
}
}
但这实际上取决于搜索的标准。在上面的示例中,它将拉取所有以“id_”开头的POST变量。如果您有一个不同的/更好的标准,您可能可以更简单地执行此操作。您可以循环:
foreach ($_POST as $k => $v) {
if (substr($k, 0, 3) == 'id_') {
// do stuff
}
}
但这实际上取决于搜索的标准。在上面的示例中,它将拉取所有以“id_”开头的POST变量。如果您有一个不同的/更好的标准,您可能可以做得更简单。如果您使用第一个标准进行转换,则可以 示例
<?php
$a = array(
"first key" => "first value",
"second key" => "second value",
);
$v = array_values($a);
echo "First value: {$v[0]}\n";
?>
编辑:感谢评论员指出最初的错误。如果您先使用转换,就可以 示例
<?php
$a = array(
"first key" => "first value",
"second key" => "second value",
);
$v = array_values($a);
echo "First value: {$v[0]}\n";
?>
编辑:感谢评论员指出最初的错误。这里有一个使用内部指针的解决方案:
if(count($_POST) > 1){ // just a check here.
reset($_POST); // reset the pointer regardless of its position
$second_value = next($_POST); // get the next value, aka 2nd element.
}
顺便说一下,关于数字索引:PHP$\u POST和$\u GET是关联数组!它们不支持类似于$\u POST[0]
或$\u POST[1]
的内容。它们将返回NULL,因为它们未设置。相反,$\u POST[“name”]
会起作用
来自PHP手册:“通过HTTP POST(或GET)方法传递到当前脚本的变量的关联数组。”这里有一个使用内部指针的解决方案:
if(count($_POST) > 1){ // just a check here.
reset($_POST); // reset the pointer regardless of its position
$second_value = next($_POST); // get the next value, aka 2nd element.
}
顺便说一下,关于数字索引:PHP$\u POST和$\u GET是关联数组!它们不支持类似于$\u POST[0]
或$\u POST[1]
的内容。它们将返回NULL,因为它们未设置。相反,$\u POST[“name”]
会起作用
来自PHP手册:“通过HTTP POST(或GET)方法传递到当前脚本的变量的关联数组。”
如果您知道其他$\u POST值在您的表单中有名称(即,不是数字的键),这将起作用
如果您知道其他$\u POST值在您的表单中有名称(即,不是数字的键),这将起作用。我有一个方便的函数
function nth($ary, $n) {
$b = array_slice($ary, intval($n), 1);
return count($b) ? reset($b) : null;
}
就你而言
$foo = nth($_POST, 1);
我有一个方便的功能
function nth($ary, $n) {
$b = array_slice($ary, intval($n), 1);
return count($b) ? reset($b) : null;
}
就你而言
$foo = nth($_POST, 1);
使用
这将使您了解您不知道的字段的关键点。使用
这将使您了解您不知道的字段的关键点。复制:
$vars = $_POST;
删除您知道的名称:
unset( $vars[ "known variable 1" ] );
unset( $vars[ "known variable 2" ] );
剩下的就是您需要的变量:用数组值提取它们,或用foreach枚举它们,随便什么。复制:
$vars = $_POST;
删除您知道的名称:
unset( $vars[ "known variable 1" ] );
unset( $vars[ "known variable 2" ] );
剩下的就是您所需要的变量:使用数组值提取它们,或者使用foreach枚举它们,等等。如果您不知道$\u POST数组上的数组键,那么简单的for each就可以了
foreach($_POST as $key=>$value):
print 'key'.$key.' value'.$value
endforeach;
但是,如果您计划处理post变量,建议您知道它们是什么。如果您不知道$\u post数组上的数组键,那么简单的for each就可以了
foreach($_POST as $key=>$value):
print 'key'.$key.' value'.$value
endforeach;
但是,如果您计划处理post变量,建议您知道它们是什么。但他只想访问一个变量。循环似乎过度,但他只想访问一个变量。根据$u POST上的PHP手册:“通过HTTP POST方法传递到当前脚本的变量的关联数组。”根据$u POST上的PHP手册:“通过HTTP POST方法传递到当前脚本的变量的关联数组。”Mauris是对的,我的答案是错的。如果发布的值没有名称,它将返回NULL,并且不会在$\u post关联数组中设置。即使它有名称,数字索引也不会设置。=)莫里斯是对的,我的答案是错的。如果发布的值没有名称,它将返回NULL,并且不会在$\u post关联数组中设置。即使它有名称,数字索引也不会设置。=)简单的方法通常是最简单的——使用array_values()转换数组,然后对其进行索引,就像一个符咒一样。@csl-附加变量的开销=D开玩笑!简单的方法通常是最简单的——使用array_values()转换数组,然后对其进行索引,就像一个符咒一样。@csl-附加变量的开销=D开玩笑!那没用。显然,它在运行时是未知的,这是无用的。显然,它在运行时是未知的。