为多个值创建一个具有相同键的PHP数组

时间:2016-09-29 22:29:21

标签: php jquery arrays json wordpress

我发布了之前在这里发过的问题,并没有为我正确清除。

我正在尝试调整一个名为“灵活日历”的简单jquery代码,并通过我们的管理员使用元键填充事件。

键是日期,值是字符串。这就是问题所在。为了使用jQuery日历,我可以像这样动态创建一个JSON对象:

var codropsEvents = {
'11-23-2016' : 'text',
'11-23-2016' : 'text two',
'11-20-2016' : 'some other text',
'11-19-2016' : 'Anything that is text'
};

但是我需要获得一个JSON对象,如下所示:

var codropsEvents = {
'11-23-2016' : 'text', 'text two',
'11-20-2016' : 'some other text',
'11-19-2016' : 'Anything that is text'
};

在这种情况下,我需要一个代码,使它们识别相同的日期条目,并且嵌套在同一行上将值与同一天的事件相对应。

问题是,PHP不允许在多行中使用相同的密钥:如果我有多个具有相同日期的帖子(wp元值),PHP只在数组中存储一个。

我的日历每天只显示一个帖子。

如何组织我的PHP数组以获得JSON对象的良好格式?

实际上,我不需要具有相同键的多行。对于每个具有相同日期的帖子,我需要创建一个具有唯一键(日期)的行和一个包含所有帖子标题的字符串的唯一值。

2 个答案:

答案 0 :(得分:0)

Javascript对象不是有效对象。

for (var properties in your_obj) {
   // will not return dups
}

如果它们是不同的条目,并且您希望将它们视为这样,并且您可以访问JSON创建,请按以下方式进行:

[
  {
    "date" : "11-23-2015",
    "content" : "text here"
  },
  {
    "date" : "11-23-2015",
    "content" : "text 2 here"
  },
  {
    "date" : "11-23-2015",
    "content" : "text 3 here"
  }
]

然后在你的php中使用:

json_decode($jsonstring);
json_decode($string, true); // for nested array

请参阅http://php.net/manual/en/function.json-decode.php

有一个非常相似的问题: https://stackoverflow.com/a/12561521/4792497

答案 1 :(得分:0)

你可以这样做;

<强> JSON

var codropsEvents = {
"11-23-2015":[
   "text",
   "some text",
   "more text",
   "bla bla"]
}

<强> PHP

$codropsEvents  = array('11-23-2015'=> array('text','some text','more text','bla bla'))