многомерный массив Judy

#php #arrays #json #judy-array

#php #массивы #json #judy-массив

Вопрос:

Я пытаюсь адаптировать Judy к своему коду, используя его почти как обычный массив php, но у меня не получается получить доступ к многомерному массиву. Каждый раз, когда я пытаюсь напечатать вложенное значение ключа, я получаю NULL.

  1. как я могу выполнить итерацию по своим результатам?
  2. как я могу закодировать эту структуру в json? Каждый раз, когда я пытаюсь, я получаю пустые скобки «{}»

Мой код:

 /**
 * This method parses the content of XML body
 * Array of objects to spare more memory usage
 * @param $xml object SimpleXml Object
 * @param $timeRequest array this second param brings the time_request value along with the url
 */
private function parseXmlContent($xml, $timeRequest)
{
    $counter = 0;
    $forecast = new Judy(Judy::INT_TO_MIXED);

    foreach ($xml->point as $key => $value):

        $forecast[$counter] = $this->initJudy($value, $timeRequest, count($value);            
        $counter  ;

    endforeach;

    $this->sucess  ;
    $this->results[$this->results->nextEmpty(0)] = $forecast;
}

private function initJudy($value, $timeRequest, $length)
{
    $judy = new Judy(Judy::STRING_TO_MIXED);
    $judy['timestamp'] = (string)$value->data[0];
    $judy['time_request'] = $timeRequest[0]->time_request;
    $judy['latitude'] = (string)$value->data[1];
    $judy['longitude'] = (string)$value->data[2];

    $j = 0;
    for ($i = 3; $i < $length; $i  ) {
        $attribute = $this->variables[$j];
        $judy[$attribute] = (string)$value->data[$i];
        $j  ;
    }

    return $judy;

}
  

Комментарии:

1. json_encode($this->results); или что вы хотите передать в виде структуры данных JSON, смотрите руководство

2. @RiggsFolly я изменил структуру и теперь работаю с чем-то вроде этого: $judy[INT] = new Judy(STRING_TO_MIXED); использование функции json_encode возвращает пустое {}