【发布时间】:2019-03-21 08:12:48
【问题描述】:
这是我的数据:
$d = $request->request->get('data');
输出:
[{"name":"form[id]","value":"10"},{"name":"form[name]","value":"Telefon2"},{"name":"form[uuid]","value":"bb80878ad4"},{"name":"form[productgroup]","value":"6"},{"name":"form[category]","value":"1"},{"name":"form[documents]","value":"7"}
我想创建一个新数组,即删除提取括号内的变量。
function trim($d) {
preg_match('#\[(.*?)\]#', $d, $match);
return $match[1];
}
$dData = array_combine(array_column(trim($d), 'name'), array_column($d, 'value'));
$json = json_encode($dData);
但错误是
警告:preg_match() 期望参数 2 是字符串,给定数组
【问题讨论】:
-
您的输出不是缺少
]吗?如果是,那么您的输出必须是json -
是的,抱歉忘记了一行
-
在这种情况下我建议你使用
json_decode() -
你为什么要尝试正则表达式?
$json的预期结果是什么? -
我不明白你为什么使用
preg_match。您是否考虑过使用array_map?
标签: php arrays json string replace