thinkPHP5.0获取JSON二维或多维数组

19 篇文章 0 订阅
16 篇文章 0 订阅

HTML代码

{foreach $v.lists as $k2=>$v2}
<tr>
	<td>{$v2.id}</td>
	<td>{$v2.title}</td>
	<td>
		<input type="number"
			class="nodebox nodebox_{$v.module}"
			name="nodebox[{$v2.id}]"
			lay-skin="primary"
			value="{$v2.score}" />
	</td>
</tr>
{/foreach}

<script type="text/javascript">
	$(function () {
		layui.use([
			"layer",
			"form",
			"element",
		], function () {
			layer = layui.layer;
			form = layui.form;
			element = layui.element;

			form.on("submit(demo1)", function (data) {
				// layer.msg(JSON.stringify(data.field));
				$.post("", {
					data: JSON.stringify(data.field),
				}, function (params) {
					return false;
					if (params.code != 0) {
						layer.msg(params.msg);
					} else {
						parent.location.reload();
					}
				}, "json");
				return false;
			});

		});
	});

</script>

PHP代码

$data = trim(input("data"));
$data = json_decode($data, true);
dump($data);
die;

PHP中获取到内容
在这里插入图片描述

PHP中的处理方法

/**
 * JSON字符串转为array数组
 * 调用的函数都是PHP函数可能会导致兼容性问题
 *
 * @param   string  $key  json字符串对应的key值
 * @return  array         还原之后的json数组
 */
function json2arr($jsonstr)
{
	// 将特殊的 HTML 实体转换回普通字符
	$jsonstr = htmlspecialchars_decode($jsonstr);
	// // 一般不需要,如果返回值和预期不一致请取消注释,PHP5.2小程序需要此方法
	// $jsonstr = stripslashes($jsonstr);
	// 对 JSON 格式的字符串进行解码
	$json = json_decode($jsonstr, true);
	// 一般不需要,如果返回值和预期不一致请取消注释,将删除数组中 array 的所有“空”(参考empty函数)元素
	$json = array_filter($json);

	// 还原json字符串中包含的[](数组)
	// 生成 urlencode 之后的请求字符串
	$query = http_build_query($json);
	// 将字符串解析成一个数组,并存入传递的第二个变量,在这里是(json_arr)
	parse_str($query, $json_arr);

	return $json_arr;
}

修改之后的PHP代码

$data = trim(input("data"));
$data = json2arr($data);
dump($data);
die;

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值