【问题标题】:PHP $_POST arrayPHP $_POST 数组
【发布时间】:2019-09-11 21:10:51
【问题描述】:

我正在构建一个从外部服务接收数据的 webhook。

为了检索数据,我使用了以下数组:

$data = [
$_POST['aaa'],
$_POST['bbb'],
$_POST['ccc'],
$_POST['ddd'],
$_POST['eee']
];

是否可以在不重复 $_POST 的情况下构建相同的数组?我的意思是:

$data = $_POST [
['aaa'],
['bbb'],
['ccc'],
['ddd'],
['eee']
];

显然,该代码是错误的。

谢谢。

【问题讨论】:

    标签: php arrays post


    【解决方案1】:

    没有这样的捷径。你可以使用array_map():

    $data = array_map(function($key) {
        return $_POST[$key];
    }, ['aaa', 'bbb', 'ccc', ...]);
    

    【讨论】:

      【解决方案2】:
      $data = $_POST
      

      这将以与 GLOBAL $_POST 数组相同的方式构建新的 $data 数组,包括 POST 键名称及其分配的值。

      还检查 extract($_POST),因为这会将每个键提取到其相同名称的变量中,这可能更容易在您的 web-hook 或您以后使用的任何函数或程序代码中引用。这基本上是这样做的:

      $aaa = $POST['aaa']
      $bbb = $POST['bbb']
      $ccc = $POST['ccc']
      

      等等等等 https://www.php.net/manual/en/function.extract.php

      【讨论】:

      • "$data = $_POST;"正是我需要的(但出于安全原因,我不会使用“extract()”)。谢谢!还要感谢 Barmar 和 Christoff X:我学到了一些新东西。
      【解决方案3】:

      对我来说最简单的方法是:

      1. 用于获取 $_POST 数组中的所有值

      foreach($_POST as $value){ $data[] = $value; }

      1. 用于获取所有值并希望保留密钥

      foreach($_POST as $key=>$value){ $data[$key] = $value; }

      1. 用于从数组中获取特定的值数组

      foreach(['aaa','bbb','ccc','ddd','eee'] as $column){ $data[] = $_POST[$column]; }

      1. 总是转义变量是个好主意;)

      $con = mysqli_connect('hostcleveranswer.com','USERyouearn','PWDanupv0Te','dropthemicDB') foreach($_POST as $key => $value) { $data[] = mysqli_escape_string($con,$value); }

      //我觉得这是一个很好的简单答案,使用工具无需学习新的函数语法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-20
        • 1970-01-01
        • 1970-01-01
        • 2020-10-30
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多