PHP — Многомерный массив в Json

#javascript #php #json

#javascript #php #json

Вопрос:

Это немного вопрос обратной инженерии, но я хочу знать, как написать на PHP правильный многомерный массив в PHP, который выводит следующий массив javascript.

       [
        {
          "key": "Basic Planners",
          "values": [{"x": "YourPhone","y": 150}, 
                     {"x": "Universe X3","y": 300},
                     {"x": "ePhone 74s","y": 1500}, 
                     {"x": "NextUs","y": 50}, 
                     {"x": "Humanoid","y": 500
                    }]
        }, {
          "key": "No-Namers",
          "values": [{"x": "YourPhone","y": 300}, 
                     {"x": "Universe X3","y": 250}, 
                     {"x": "ePhone 74s","y": 400}, 
                     {"x": "NextUs","y": 150}, 
                     {"x": "Humanoid","y": 900}]

        }, {
          "key": "Feature Followers",
          "values": [{"x": "YourPhone","y": 350}, 
                     {"x": "Universe X3","y": 900}, 
                     {"x": "ePhone 74s","y": 100}, 
                     {"x": "NextUs","y": 500}, 
                     {"x": "Humanoid","y": 250}]

        }, {
          "key": "Hipsters amp; Elites",
          "values": [{"x": "YourPhone","y": 200}, 
                     {"x": "Universe X3","y": 350}, 
                     {"x": "ePhone 74s","y": 50}, 
                     {"x": "NextUs","y": 800}, 
                     {"x": "Humanoid","y": 100}]
        }
      ]
  

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

1. Немного забавно, что вместо ключа под названием «Basic Planners» у вас есть ключ под названием «key» со значением «Basic Planners». Это сделало бы структуру намного более компактной в использовании {"Basic Planners": [{"x":...},...], "Feature Followers":[...] и т. Д

2. Хороший момент. Я использовал формат для nvd3.js график, протестирован без этого ключевого оператора, и он работает, поэтому я удалю его из php (данные поступают таким образом).

Ответ №1:

Следующий код должен сделать свое дело

 $phpArray = array(
    array(
        'key' => 'Basic Planners',
        'values'=> array(
            array('x' => 'YourPhone', 'y' => 150),
            array('x' => 'Universe X3', 'y' => 300),
            array('x' => 'ePhone 74s', 'y' => 1500),
            array('x' => 'NextUs', 'y' => 50),
            array('x' => 'Humanoid', 'y' => 500),
        )
    ),
    /* and so on... */
);

echo json_encode($phpArray);
  

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

1. Спасибо, чувак! Я продолжал подбираться ближе, но облажался. Я больше разбираюсь в дизайне, CSS и jQuery, чем в серверной части.

Ответ №2:

Руководство по PHP

Для объектов JSON используйте array("key" => value, ...)

для массивов JSON используйте array(arg0, arg1, arg2, ...)

Затем просто вложите эти различные группировки. Это должно вывести желаемый JSON.