如何从$ _POST中提取数组

时间:2019-06-05 18:07:03

标签: php arrays post

我从一个数组以及其他一些字段中接收POST数据。我只需要获取数组数据,并在我自己的发布请求中将其作为json传递给后端服务器。

$ _ POST数据如下:

Array (
    [smsgte_submit] => Y 
    [alias] => Array (
        [1] => Array ( 
            [name] => mywife
            [number] => 6135552001
            [ssid] => 1 )
        [2] => Array (
            [name] => daughter
            [number] => 6135553001
            [ssid] => ) 
     )
)

我只想捕获别名条目并将其编码为json。

我成功通过以下方式将整个$ _POST数组编码为json:

$data['jsonpost'] = json_encode($_POST);

按预期对数组进行编码,但是,我只想要别名数组,因此我尝试了以下操作:

$data['jsonpost'] = json_encode($_POST['alias']);

那,但是不起作用,它向服务器返回null。然后我尝试了:

$data['jsonpost'] = json_encode(array_filter($_POST, 'alias'));

但是返回空值。

也许我需要重新设计表单,但最后,我想要一个看起来像这样的json数组:

    {
    "alias": {
        "name":"mywife",
        "number":"6135552001",
        "ssid":"1"
    },
        "alias": {
        "name":"daughter",
        "number":"6135553001",
        "ssid":"2"
    }
}

1 个答案:

答案 0 :(得分:0)

事实证明,以下语法应正确:

$data['jsonpost'] = json_encode($_POST['alias']);

但是,为了使其正常工作,我必须按以下方式进行拆分:

$jsonpost = json_encode($_POST['alias']);
$data['jsonpost'] = jsonpost;

我在两个选项之间来回切换了几次,但至少在PHP 7.3.5上,第二个选项才有效。