[英]Create a PHP array with the same key for multiple rows to json_encode
在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对象的良好格式?
** /!\\更新/!\\ **
实际上,我不需要具有相同键的多个行。 对于每个具有相同时间戳的帖子,我需要创建一个具有唯一键(时间戳)和唯一值的行,该值将是包含所有帖子标题的字符串。
希望我明白。
几个月前不得不做类似的工作,我解决了以下问题。 如何在这样的关联数组中获取数据
$array[$key][] = $value;
在最后编辑后更新:您只需要此数组关联结构,其余的将由json_encode完成
您提供的json也不像您要求的那样工作。 对于给定的键,它也只能有一个值,因此它将像PHP的数组一样结束。 您需要制作(字符串的)values数组而不是字符串:
{"11-23-2015":["text","text two"]}
为什么不尝试以下示例,不确定是否符合您的要求,但我希望:)
$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"]}
我会尝试这样的东西。
<?php
$date = date('Y-m-d h:i:s');
$date_str = str_replace(array(' ', ':'), '-', $date);
$array[$date_str] = array($value1, $value2, $value3, $valuen);
您遇到的问题在于,您尝试生成的数组格式在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。
当然,还有其他解决方法,但是我认为这应该为您提供与您要达到的目标最接近的匹配。
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.