How to display Json fields with PHP

0

I have the following Json in a PHP variable:

[
   {"pergunta[0]":"Quantos anos?"},
   {"pergunta[1]":"Qual sua altura?"},
   {"resposta[0]":"12"},
   {"resposta[1]":"1.65"}
]

and my goal is to show it as follows:

How many years? 12.

How tall are you? 1.65.

I've tried it this way:

$obj = json_decode([{"pergunta[0]":"Quantos anos?"},{"pergunta[1]":"Qual sua altura?"},{"resposta[0]":"12"},{"resposta[1]":"1.65"}]);
echo $obj['pergunta'];

Any suggestions?

    
asked by anonymous 07.11.2018 / 17:44

2 answers

0
$jsonVar = json_decode('{"p0":"Quantos anos?","p1":"Qual sua altura?","r0":"12","r1":"1.65"}');

function mostrar($jsonVar)
{

    foreach ($jsonVar as $key => $value) {

        $pergunta = "none";
        $index = "0";

            if( substr($key, 0, 1) == 'p' )
            {
                $pergunta = $value;
                $index = substr($key, 1, strlen($key) );

                echo  $pergunta . " numero da pergunta:" . $index . " -> ";

                foreach ($jsonVar as $key => $value) {

                    if( $key == 'r'.$index )
                    {
                        echo "Valor da pergunta " .$index. ": " .$value. "
"; } } } } } mostrar($jsonVar);

Result:

Quantos anos? numero da pergunta:0 -> Valor da pergunta 0: 12
Qual sua altura? numero da pergunta:1 -> Valor da pergunta 1: 1.65

I hope to help.

    
07.11.2018 / 18:45
0

Your json needs to be serialized (to be a string) to do json_decode. For example:

$obj = json_decode('[{"pergunta1":"Quantos anos?"},{"pergunta2":"Qual sua altura?"}]');

echo $obj[0]->pergunta1;
    
07.11.2018 / 18:16