php - 如何从 $_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'));
但这返回了null。
也许我需要重新设计我的表单,但最后,我想要一个看起来像这样的 json 数组:
{
"alias": {
"name":"mywife",
"number":"6135552001",
"ssid":"1"
},
"alias": {
"name":"daughter",
"number":"6135553001",
"ssid":"2"
}
}
解决方案
事实证明,以下语法应该是正确的:
$data['jsonpost'] = json_encode($_POST['alias']);
但是,为了让它工作,我不得不将它拆分如下:
$jsonpost = json_encode($_POST['alias']);
$data['jsonpost'] = jsonpost;
我在这两个选项之间来回切换了几次,但只有第二个有效,至少在 PHP 7.3.5 中是这样。
推荐阅读
- python - Python:创建一个从 A 到 Z 的空字典,没有 J 和 Y
- jquery - WooCommerce 在数量选择更改时显示价格
- java - 在 QueryContext Oracle 的数字 varchar 字段中附加前导零
- wordpress - 在 bitnami 堆栈应用程序中缺少 Properties.ini 文件
- google-sheets - 将公式转换为数组公式
- spring - 如何使用 Spring boot 使用 Active Directory LDAP 只是为了找到一个用户,不需要对他进行身份验证
- android - 使用视图模型实现 Room,如何在 DAO 中获取查询的返回值。而不是 List<> 它只返回“CouroutineJob”
- jenkins - RE:从构建作业的发布操作更新部署作业中的选择参数而不构建它
- jmeter - JMeter 响应时间随时间推移太多用例
- excel - 单独列中的 Excel 重复查找器