использование PHP для создания многомерного массива из простого массива JSON - PullRequest
1 голос
/ 13 июня 2010

У меня есть php-запрос, который возвращает следующий формат JSON из таблицы.

[{"memberid":"18", 
"useridFK":"30",
"loginName":"Johnson",
"name":"Frank",
"age":"23",
"place":"School",
},

Требуется следующий формат:

[{"memberid":"18" {
                    "useridFK":"30",
                    "loginName":"Johnson",
                    "name":"Frank",
                    "age":"23",
                    "place":"School",}
                    },

В другом вопросе мне сказали, что PHP будет работать, и похоже, что "Transversing" может быть уместным, я ищу, что добавить в Php, прежде чем он вернет JASON.

Мой Array.plist будет выглядеть следующим образом:

  Root:                   Dictionary
       V Rows:            Array
         V Item 0:        Dictionary
            Title:        String          18
          V Children      Array
            V Item 0      Dictionary
              Title       String          30
   etc.

Заранее спасибо.

1 Ответ

1 голос
/ 14 июня 2010

Я не совсем уверен, что понимаю, что вы хотите сделать. Я полагаю, вы хотите превратить данные json в массив в php, а затем перегруппировать их содержимое, чтобы оно распространилось по двум измерениям?

Php поставляется с двумя очень удобными функциями, называемыми "json_decode" и "json_encode", которые позволят вам декодировать и кодировать данные json. Подробнее о них можно прочитать здесь.

Примечание о "json_decode". Если вы не передадите вторичный параметр функции как TRUE, он вернет объект, а не многомерный массив.

Пример:

<?php

    $strJsonData = '[
        {"memberid":"18", 
        "useridFK":"30",
        "loginName":"Johnson",
        "name":"Frank",
        "age":"23",
        "place":"School"},

        {"memberid":"19", 
        "useridFK":"36",
        "loginName":"Jones",
        "name":"Bill",
        "age":"34",
        "place":"Work"}
    ]';

    $arrRawJsonData = json_decode( $strJsonData, true );
    # Now $arrRawJsonData contains a two-dimentional array of all your json data.

    $intJsonDataCount = count( $arrRawJsonData );

    for ($i = 0; $i < $intJsonDataCount; $i++)
    {
        $intMemberId = (int) ($arrRawJsonData[$i]['memberid']);
        unset( $arrRawJsonData[$i]['memberid'] );
        $arrJsonData[$intMemberId] = $arrRawJsonData[$i];
    }

    print_r( $arrJsonData );

?>

Приведенный выше код приведет к следующему:

Array
(
    [18] => Array
        (
            [useridFK] => 30
            [loginName] => Johnson
            [name] => Frank
            [age] => 23
            [place] => School
        )

    [19] => Array
        (
            [useridFK] => 36
            [loginName] => Jones
            [name] => Bill
            [age] => 34
            [place] => Work
        )

)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...