PHP解析Ajax提交的二维数组

该文章提供了两个PHP函数,一个用于递归处理数组,清理和转换元素;另一个将JSON字符串转换为数组,涉及trim、htmlspecialchars_decode和json_decode等处理步骤,确保数据正确解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 递归处理数据
function arr_map($vo)
{
	if (is_array($vo)) {
		$vo = array_map("arr_map", $vo);
	} else {
		$vo = trim($vo);
		$vo = is_numeric($vo) ? floatval($vo) : $vo;
	}
	return $vo;
}

/**
 * JSON字符串转为array数组
 * @param   string  $json  json字符串对应的key值
 * @return  array          还原之后的json数组
 */
function json2arr($json)
{
	// 使用trim去除两端空格
	$json = trim($json);
	// 将特殊的 HTML 实体转换回普通字符
	$json = htmlspecialchars_decode($json);
	// // 一般不需要,小程序json可能需要用这个方法处理
	// $json = stripslashes($json);
	// 对 JSON 格式的字符串进行解码
	$json_arr = json_decode($json, true);
	// 一般不需要,将删除数组中 array 的所有“空”(参考empty函数)元素
	$json_arr = array_filter($json_arr);

	if (!empty($json_arr)) {
		// 还原json字符串中包含的[](数组)
		// 生成 urlencode 之后的请求字符串
		$query = http_build_query($json_arr);
		// 将字符串解析成一个数组,并存入传递的第二个变量,在这里是json_arr
		parse_str($query, $_arr);
	} else {
		$_arr = $json_arr;
	}
	$_arr = is_array($_arr) ? $_arr : [];
	$_arr = array_map("arr_map", $_arr);

	return $_arr;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值