所以,在漫长的三天之后,我的另一个问题得到了解决,关于php-to-json数组。自从修复了之前的问题后,我遇到了另一个使用foreach导致输出中断的问题。
查看var_dump,似乎有一个问题:
- 第一个数组不为0,但包含所有命名的键。
- 此后数组编号:0,1等,但没有命名键。
- 第一个以连续整数"1"在输出的末尾重复。
使用JSON Lint测试并返回有效。这是输出链接。
PS:忽略json_pretty_print。我这样做只是为了把结构看得更清楚。
[
{
"muid": "IMDBTFKG3MJOZPE0AAVA",
"bandname": "In Hoodies",
"core": {
"joined": "Wed 26 August 2015",
"bandbio": "Broken Tambourine Music",
"genre": "Popular",
"subgenre": "Brit"
},
"0": [
"IM5LGM02MFS8RJLKGY9W",
"Marbles For Zen",
{
"joined": "Sun 01 March 2015",
"bandbio": "Zen And Marbles",
"genre": "Rhythm Blues",
"subgenre": "Dixie Rhythm"
},
...
"1": [
"IMA3YNBKZQDNR9RBCSRI",
"Frankie Storm",
{
"joined": "Sat 21 February 2015",
"bandbio": "Just registered. Bio coming soon.",
"genre": "Popular",
"subgenre": ""
},
我想你对这里的结构有点困惑:
看起来你有一个只有一个元素的数组,这个元素是一个巨大的对象。
对象的内部是属性,前三个属性是muid
, bandname
和core
。之后的每个属性都从0开始计算,这可能是你困惑的根源。0
, 1
…它们不是索引,而是原始对象的属性它们被双引号括起来....
已解决
非常感谢A.O.让我注意到对象的属性。看起来冲突很简单: 原始:$meso[]=array();
正确的:
$meso=[];
这么简单,是吗?注意是值得的。在正确的数组入口之后,使用
array_push($meso, [( <--- objects here ---> )]);
产生完美的结果。使用json_encode和 volilom 完成该函数,输出很漂亮。
干杯,快乐的黑客!