【问题标题】:Create a PHP array with the same key for multiple values为多个值创建一个具有相同键的 PHP 数组
【发布时间】:2016-09-29 22:29:21
【问题描述】:

我发布了一个之前已经在这里提出的问题,但没有为我正确清除。

我正在尝试修改一个名为“灵活日历”的简单 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 对象的良好格式?

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

【问题讨论】:

  • 这是不可能的,无论是 JavaScript 还是 PHP 都不会让你在一个对象中有重复的键。
  • 而且也不接受重复的键
  • 你想要的大概是'11-23-2015' : ['text', 'text two']
  • 这到底是个什么js插件,看看API就知道了,很有可能是同一天有多个事件的嵌套方式
  • 那个数据结构似乎不太可能是正确的......或者你需要找到一个更适应的日历

标签: php jquery arrays json wordpress


【解决方案1】:

你可以这样做;

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'))

【讨论】:

    【解决方案2】:

    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

    【讨论】:

    • 我相信路径就在那里。但仍然无法使其工作。我用更多细节更新了我的问题。我希望这次我能更好地表达自己。
    • 对不起,我对你想要的有点困惑。你想在js中格式化json中的日历条目吗?或者,从端点提取数据并在 PHP 中将其格式化为 json?我需要更多信息,也许还有代码可以帮助你。
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2010-11-07
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多