php - 将 HTML 元素名称(如 abc[0])转换为 php 中的数组
问题描述
试图将传入的表单值从 Ajax 转换为 Php 数组,但它似乎表现得像字符串
使用下面的 reg ex 如果我有方便的输入名称,我可以通过循环手动替换键,但我认为这不是最好的方法,请建议
preg_match('/^A\[\d+\]/', $key);
preg_match('/^B\[\d+\]/', $key);
我的表格是这样的
<input type="text" id="c[0]" name="c[0]" value="">
这就是我从 Ajax 到 PHP 的传入表单值的样子
Array
(
[A[0]] => Test1
[B[0]] => Test2
[C[0]] => Test3
[D1[0]] => Test4
[A[1]] => Test1
[B[1]] => Test2
[C[1]] => Test3
[D1[1]] => Test4
)
我想将传入的值转换为 php 数组,如下所示
A[0] = Test1
A[1] = Test1
B[0] = Test2
B[1] = Test2
解决方案
正在使用 json_encode 将表单元素发送到 Ajax,因此必须在传入时进行解码,然后 parse_str 完成了这项工作,将字符串转换为数组,无法避免 foreach 循环
$p2 = json_decode($_GET['form_ele1'], true);
$p4 = array();
foreach($p2 as $key => $value){
$tkey = $key;
parse_str($tkey, $arr);
foreach($arr as $key2 => $value2){
$p4[$key2][key($value2)] = $value;
}
}
$p2 = $p4;
推荐阅读
- angular - Angular 6材料应用程序仅打印第一页
- git - 如果我需要的分支以 # 符号开头,我如何从 git 执行 pip install
- go - 使用 go-fuse (hanwen) 写入文件
- vba - 使用 VBA 返回非空行号
- kotlin - 文件在 IntelliJ 插件中编译正常,但不能使用 kotlinc 命令行编译器编译
- docker - 找出 docker 容器为何不断重启的简单方法
- google-cloud-platform - 使用服务帐户从谷歌云功能访问谷歌云 SQL 实例
- ios - 如何不在 UICollectionView 中重用单元格 - Swift
- bash - sh 中 bash 的 ${!ENV} 相当于什么?
- python - eli5 show_prediction 未显示概率