PHP сегментирует многомерный массив в меньшие массивы - PullRequest
0 голосов
/ 02 октября 2018

Что я пытаюсь сделать, это создать функцию, которая преобразует этот массив

{
    "data": {
        "churnStructured": [
            {
                "id_region": "4",
                "iso": "be",
                "mcc": "206",
                "country": "Belgium",
                "carriers": [
                    {
                        "carrier": "Triton PCS",
                        "id_carrier": 68,
                        "brands": []
                    },
                    {
                        "carrier": "Beeline",
                        "id_carrier": 80,
                        "brands": []
                    }
                ]
            },
            {
                "id_region": "4",
                "iso": "bg",
                "mcc": "284",
                "country": "Bulgaria",
                "carriers": [
                    {
                        "carrier": "Comium",
                        "id_carrier": 75,
                        "brands": []
                    }
                ]
            }
        ]
    }
}

в меньшие массивы, например:

{[
    "first_array" : [{
        "id_region": "4",
            "iso": "be",
            "mcc": "206",
            "country": "Belgium",
            "carriers": [
                {
                    "carrier": "Triton PCS",
                    "id_carrier": 68,
                    "brands": []
                },
                {
                    "carrier": "Beeline",
                    "id_carrier": 80,
                    "brands": []
                }
            ]
    ]},
    "second_array": [{
        "id_region": "4",
        "iso": "bg",
        "mcc": "284",
        "country": "Bulgaria",
        "carriers": [{
                "carrier": "Comium",
                "id_carrier": 75,
                "brands": []
                }]
    }],
    "third_array": [{}],
    "n_array": [{}]
]}

, как вы можете видеть, что новые массивы имеютпервая ветвь, их страна и структура одинаковы для их детей.

Я подумывал сделать рекурсивную функцию, которая получает каждое значение и с этим проверяется с помощью ключей, однако я незнать, как сделать правильную итерацию и получить каждую страну в виде нового массива с соответствующими дочерними элементами.

, а также массив является динамическим, он может получить массив из n-объектов

1 Ответ

0 голосов
/ 02 октября 2018

Используйте числовой массив, а не first_array и т. Д. Это должно помочь:

$data = json_decode($json, true);
$data = $data['data']['churnStructured'];

$results = [];
foreach ($data as $row) {
    $results[] = $y;
}

var_dump($results);

Что вы можете увидеть в действии здесь!https://3v4l.org/V6VoO

...