首先,对不起标题,但是我不知道确切地描述问题的意思。
回到问题,这就是我想要得到的:
{"0":{"dep":"DIR","user":"10000008","seen":"0000-00-00 00:00:00"},"1":{"dep":"TES","user":"10000008","seen":"0000-00-00 00:00:00"}}
这是我正在使用的实际代码(该代码从输入元素作为数组接收数据)示例:
<input type="text" name="dep[]" />
<input type="text" name="user[]" />
这是我需要“修复”的主要代码:
$user = ($_POST['cc_user']);
$dep = ($_POST['cc_dep']);
$cc = array();
for($i=0;$i<count($_POST['cc_dep']);$i++) {
$cc = array();
$cc['user'] = $user[$i];
$cc['dep'] = $dep[$i];
$cc['seen'] = '0000-00-00 00:00:00';
$x = strval($i);
$cc2["$x"] = $cc;
unset($cc);
}
echo json_encode($cc2);
此刻,这是结果而不是我想要得到的结果:
[{"user":"10000008","dep":"DIR","seen":"0000-00-00 00:00:00"},{"user":"10000001","dep":"admin","seen":"0000-00-00 00:00:00"}]
如您所见,数组的键不可见,我需要它来在我的网站上进行集成。
我尝试使用以下方法指定$i
:
(string)$i
stringval($i)
"$i"
但是我没有解决问题。即使真的很简单,有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
您可能正在寻找的是将JSON强制为对象。
非关联数组(带有所有数字键)以JSON格式显示,不带键。在PHP中,用作数组键的数字式字符串将转换为整数。
您可以使用其他参数使其成为JSON对象。
json_encode($cc2, JSON_FORCE_OBJECT)
请看一下json_encode
的文档中的示例答案 1 :(得分:-1)
执行此操作。我认为您缺少$cc2
声明。
$user = ($_POST['cc_user']);
$dep = ($_POST['cc_dep']);
$cc2 = array(); //$cc2 should be defined here
for($i=0;$i<count($_POST['cc_dep']);$i++) {
$cc = array();
$cc['user'] = $user[$i];
$cc['dep'] = $dep[$i];
$cc['seen'] = '0000-00-00 00:00:00';
$x = strval($i);
$cc2["$x"] = $cc;
unset($cc);
}
echo json_encode($cc2);