Jump to content
Fórum Script Brasil
  • 0

Array dentro de Array importação JSON


renatosilara
 Share

Question

Boa tarde, Amigos estou a 2 dias apanhando para ordenar array dentro de array de uma resposta do webservice json.

quando dou um print_r ele me retorna assim:

Array
(
    [0] => Array
        (
            [type] => latlng
            [data] => Array
                (
                    [0] => Array
                        (
                            [0] => 25.698004
                            [1] => -80.162858
                        )

                    [1] => Array
                        (
                            [0] => 25.698011
                            [1] => -80.162854
                        )

                    [2] => Array
                        (
                            [0] => 25.698019
                            [1] => -80.16285
                        )

                    [3] => Array
                        (
                            [0] => 25.698026
                            [1] => -80.162845
                        )

                    [4] => Array
                        (
                            [0] => 25.698034
                            [1] => -80.162841
                        )

                    [5] => Array
                        (
                            [0] => 25.698041
                            [1] => -80.162837
                        )

                    [6] => Array
                        (
                            [0] => 25.698049
                            [1] => -80.162833
                        )

                    [7] => Array
                        (
                            [0] => 25.698056
                            [1] => -80.162829
                        )

                    [8] => Array
                        (
                            [0] => 25.698063
                            [1] => -80.162825
                        )

                    [9] => Array
                        (
                            [0] => 25.698071
                            [1] => -80.16282
                        )

                    [10] => Array
                        (
                            [0] => 25.698078
                            [1] => -80.162816
                        )

                    [11] => Array
                        (
                            [0] => 25.698086
                            [1] => -80.162812
                        )

                    [12] => Array
                        (
                            [0] => 25.698093
                            [1] => -80.162808
                        )

                    [13] => Array
                        (
                            [0] => 25.698101
                            [1] => -80.162804
                        )

Certo esta chamando todos os dados, agora quero gravar esses dados na minha base de dados, mas não consigo separar os arrays.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0
<?php

$seuArray = [
    '0' => [
        'type' => 'latlng',
        'data' => [
            '0' => [
                '0' => 25.698004,
                '1' => -80.162858,
            ],
            '1' => [
                '0' => 25.698011,
                '1' => -80.162854,
            ],
            '2' => [
                '0' => 25.698019,
                '1' => -80.16285,
            ],
            '3' => [
                '0' => 25.698026,
                '1' => -80.162845,
            ],
            '4' => [
                '0' => 25.698034,
                '1' => -80.162841,
            ],
            '5' => [
                '0' => 25.698041,
                '1' => -80.162837,
            ],
            '6' => [
                '0' => 25.698049,
                '1' => -80.162833,
            ],
            '7' => [
                '0' => 25.698056,
                '1' => -80.162829,
            ],
            '8' => [
                '0' => 25.698063,
                '1' => -80.162825,
            ],
            '9' => [
                '0' => 25.698071,
                '1' => -80.16282,
            ],
            '10' => [
                '0' => 25.698078,
                '1' => -80.162816,
            ],
            '11' => [
                '0' => 25.698086,
                '1' => -80.162812,
            ],
            '12' => [
                '0' => 25.698093,
                '1' => -80.162808,
            ],
            '13' => [
                '0' => 25.698101,
                '1' => -80.162804,
            ],
        ]
    ]
];

foreach ($seuArray[0]['data'] as $value) {
    $inserts[] = '(' . implode(',', $value) . ')';
}
// montar query montada para gravar dados na base de dados, na tela:
echo 'INSERT INTO yourTable(latidude, longitude) VALUES '.implode(',', $inserts).';';

Aqui, funcionou bem...

Mas provavelmente o pessoal não entendeu o que você quer.

Tente perguntar de outra forma.

Link to comment
Share on other sites

  • 0

Lowys parte do meu problema já foi resolvido com usas dicas, como você disse não formulei bem a pergunta mas agora preciso pular de um array pra outro, nesse exemplo que você colocou eu so enxergo o primeiro e não consigo pular para o próximo. Veja exemplo do codigo de retorno Json.

Array
(
    [0] => Array
        (
            [type] => latlng
            [data] => Array
                (
                    [0] => Array
                        (
                            [0] => 25.698004
                            [1] => -80.162858
                        )

                    [1] => Array
                        (
                            [0] => 25.698011
                            [1] => -80.162854
                        )

                    [2] => Array
                        (
                            [0] => 25.698019
                            [1] => -80.16285
                        )

                    [3] => Array
                        (
                            [0] => 25.698026
                            [1] => -80.162845
                        )

                    [4] => Array
                        (
                            [0] => 25.698034
                            [1] => -80.162841
                        )
  )

            [series_type] => distance
            [original_size] => 3299
            [resolution] => high
        )

    [1] => Array
        (
            [type] => time
            [data] => Array
                (
                    [0] => 0
                    [1] => 1
                    [2] => 2
                    [3] => 3
                    [4] => 4
                )

            [series_type] => distance
            [original_size] => 3299
            [resolution] => high
        )

    [2] => Array
        (
            [type] => distance
            [data] => Array
                (
                    [0] => 0
                    [1] => 0.9
                    [2] => 1.9
                    [3] => 2.8
                    [4] => 3.7
    )

)

Link to comment
Share on other sites

  • 0

Olá!

Aaaaahhhh ttttaaaaahhhhh mosç! havia algo mais no teu array... Como não percebi?

Para atravessar para outros índices, provavelmente você vai precisar acrescentar mais uns dois ou três procedimentos.

Afinal, como você precisa da query montada no final? Como deve ficar a query pronta???

Link to comment
Share on other sites

  • 0

Olá lowys, preciso separar todos esses valores e gravar na tabela como havia dito antes, estou usando o comando mas ele me retorna apenas o primeiro array, os outros não consegui acessá-los.

        foreach ($data2[0]['data'] as $key => $value) {
                foreach ($value as $k => $v) {
                    echo "$v";
                }
            }

Link to comment
Share on other sites

  • 0

Olá Renatos!

Afinal, como você precisa da query montada no final? Como deve ficar a query pronta???Todos os dados do array serão  gravados na mesma tabela?que versão de mysql você usa? Já viu o campo próprio pra salvar json?

https://dev.mysql.com/doc/refman/5.7/en/json.html

 

 

Edited by lowys
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...