【问题标题】:Getting PHP $_POST values by index?通过索引获取 PHP $_POST 值?
【发布时间】:2012-10-13 23:24:53
【问题描述】:

我很好奇,最重要的是 - 是否可以发布 PHP 值?即$_POST['foo'] 通过某种索引?即$_POST[0]?

(顺便说一句$_POST[0]不行)

【问题讨论】:

  • $POST 不能作为索引直接访问。但这里有一个便宜且简单的解决方案: $myPost = array_values($_POST);回声 $myPost[0];这将回显发布的第一个值。
  • 我实际上没有看到通过数字索引访问 $_POST 值的用途 - 有人愿意在可行的情况下启发我吗?
  • 您通常不想关心值的顺序,它们高度依赖于影响因素,例如 HTML 中输入元素的顺序 - 这可能会因布局更改而改变。不要依赖它们,使用名称 - 因为你应该知道它们,它毕竟是你的形式。
  • 当然;我一直在考虑为正在开发的一款在线软件创建一个 API。当发布到 API 时,一个函数可能需要 2 个值,另一个需要 5 个。向 API 发送一个帖子然后将值发布到相关函数将是困难的,除非我们知道所有相关帖子的名称。此外,如果我们要使用无意义值的字段名称(postVar1、postVar2...),我们然后开始在各种函数变量中设置“null”负载。我想我可以从 post[0] 中提取一个“函数名”,然后通过“switch, case”将该数组的其余部分发布到相关函数。
  • 您可以命名多个输入 name="postVar[]",这将使您能够通过 $_POST[postVar][x] 访问变量,其中 x 是一个整数并能够遍历它们!

标签: php post indexing


【解决方案1】:

不,这是不可能的:您不能通过数字索引从关联数组中获取值(因为,正如 the doc 中明确指出的那样,PHP 不区分索引数组和关联数组)。

这就是为什么一些返回数组的函数(例如PDOStatement::fetch 及其同级)需要一个额外的参数来控制返回数组中索引的“类型”:数字(FETCH_NUM)、字符串(FETCH_ASSOC )或两者(FETCH_BOTH,默认值)。 )

重新索引可能得到的最接近的结果:

$myPost = array_values($_POST);

【讨论】:

  • 啊,我明白了...直到现在我才真正将 POST 视为一个数组...您的解决方案提供了一个非常丰富的答案 - 谢谢!
【解决方案2】:

我不知道,请查看 print_r($_POST) 以查看您可以访问的所有好东西。您可以使用以下方法迭代

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

如果您想跟踪计数,可以输入$i++ ....

【讨论】:

    【解决方案3】:

    您可以获取存储在 $_POST 变量中的数据并将它们存储到索引元素中。但它们最初并未存储为索引元素。

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 1970-01-01
      • 2017-08-27
      • 2019-09-16
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多