2015-09-16 3 views
0

Итак, после долгих трех дней была решена другая проблема, связанная с массивами php-to-json. Поскольку исправление предыдущей проблемы, столкнулись с другой, которая вызывает разрыв в выходе с использованием foreach.PHP-TO-JSON No Array [0]?

Глядя на var_dump, кажется, есть проблема:

  1. Первый массив не имеет 0 еще содержит все названные ключи.
  2. После этого массивы нумеруются: 0, 1 и т. Д., Но без названных клавиш.
  3. Первый повторяет в конце вывода последовательное целое число «1».

С помощью JSON Lint проверено и возвращено корректно. Адрес output link.

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": "" 
    }, 
+1

Что вы хотите сказать? –

+0

Я думаю, вы забыли спросить. –

+0

Извинения. Пронумерованные предметы, которые должны быть вопросами. – charless

ответ

0

Я думаю, что вы немного запутался о структуре здесь:

Оказывается, у вас есть массив, который имеет только один элемент, этот элемент является один гигантский объект.

Внутри этого объекта находятся свойства, причем первые три свойства: muid, bandname и core. Каждое свойство после этого, начиная с 0, вероятно, является причиной вашего замешательства. 0, 1 ... не являются индексы, они на самом деле являются свойства исходного объекта вы можете сказать это, потому что они обернуты в двойных кавычках ....

+0

A.O., по какой-либо причине они появляются как свойства массива. Да, я немного запутался в структурировании. Целью является итерация каждого результата mysqi в виде массива. – charless

+0

* свойства * объекта * .... И вам придется спросить 'mutrs.потому что они выбрали эту структуру, в любом случае это должно быть легко перебрать по этим свойствам, здесь есть много информации, как это сделать ... –

0

Решенный

Огромное спасибо A.O. для приведения объектов недвижимости. Похоже, что конфликт был довольно прост:

Оригинал:

$meso[]=array(); 

Правильно:

$meso=[]; 

Так просто, да? Платит обратить внимание. После правильного входа в массив, используя

array_push($meso, [(<--- objects here --->)]); 

Производит идеальный результат. Завершить функцию с json_encode и voilà красивый выход.

Cheers and Happy Hacking!

+0

рад, что вы поняли это! :) –