Php 如何通过以下数组类型的语法访问$\u 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变量。如果您有一个不同的/更好的标准,您可能可以更简单地执行此操作。您可以循环:

如果我发送了四个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开玩笑!那没用。显然,它在运行时是未知的,这是无用的。显然,它在运行时是未知的。