PHP-多维关联数组中的显式键

时间:2018-11-26 17:08:45

标签: php arrays json

首先,对不起标题,但是我不知道确切地描述问题的意思。

回到问题,这就是我想要得到的:

{"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"

但是我没有解决问题。即使真的很简单,有人可以帮忙吗?

谢谢!

2 个答案:

答案 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);