在wordpress中,我调用了一个WP_Query。对于找到的每个帖子,我将一个键+值行添加到PHP数组中。
$array[$key] = $value;
键是一个时间戳,值是一个字符串。这就是问题所在。为了使用jQuery日历,我需要获得一个JSON对象,如下所示:
var codropsEvents = {
'11-23-2015' : 'text',
'11-23-2015' : 'text two',
'11-20-2015' : 'some other text',
'11-19-2015' : 'Anything that is text'
};
为此,json_encode()函数几乎可以正常工作。
问题是,PHP不允许在多行中使用相同的密钥:如果我有多个具有相同时间戳(wp元值)的帖子,PHP只会在数组中存储一个。
因此,我的日历每天只显示一个帖子。
如何组织我的PHP数组以获得JSON对象的良好格式?
** /!\ UPDATE /!\ **
事实上,我不需要使用相同密钥的多行。对于具有相同时间戳的每个帖子,我需要创建一个具有唯一键(时间戳)的行和一个唯一值,该值将是包含所有帖子标题的字符串。
希望我明白。
答案 0 :(得分:1)
几个月前做过类似的工作,我解决了如下问题。如何在像这样的关联数组中获取数据
Feature: Dummy feature
Scenario: Home url
Given I am on "/backend"
Then I should see "Welcome to Application backend!"
And I can access service container
│ ThisTokenIsNotSoSecretChangeIt
1 scenario (1 passed)
3 steps (3 passed)
0m0.98s (28.17Mb)
您最后编辑后的更新:您只需要这个数组关联结构,json_encode将完成其余的工作
答案 1 :(得分:1)
你提供的json也不像你要求的那样工作。对于给定的键,它也只能有一个值,所以它最终会像PHP的数组一样。您需要创建值(字符串)数组而不是字符串:
{"11-23-2015":["text","text two"]}
答案 2 :(得分:0)
为什么不尝试下面这样的例子,不确定它是否符合你的要求,但我希望:)
$array = array('12', '13', '14');
$array2 = array('test', 'testing1', 'tetst23', 'testing4');
$newarray = array();
foreach ($array as $key => $value) {
foreach ($array2 as $eacharray) {
$newarray[$value][] = $eacharray;
}
}
var_dump(json_encode($newarray));
<强>输出:强>
{"12":["test","testing1","tetst23","testing4"],"13":["test","testing1","tetst23","testing4"],"14":["test","testing1","tetst23","testing4"]}
答案 3 :(得分:0)
我会尝试这样的事情。
ACCESS_URL
答案 4 :(得分:-1)
您所遇到的问题在于,您尝试生成的数组格式在PHP,JavScript或JSON中都无效。实际上,您在问题中引用的代码作为您期望的输出将不是有效的JSON,并且无法在任何符合JSON的系统中加载。
我的建议是将每个日期的文本值放在自己的数组中。这样,每个日期可以有多个,而不会破坏PHP或JSON的数组结构。你最终会得到这样的东西:
var codropsEvents = {
'11-23-2015' : ['text', 'text two'],
'11-20-2015' : ['some other text'],
'11-19-2015' : ['Anything that is text']
};
因此,以这种格式构建PHP数据,并使用json_encode()
生成JavaScript。
当然还有其他方法可以解决这个问题,但我认为这应该会给你最接近你想要实现的目标。
希望有所帮助。