Mount screen with array data

Asked

Viewed 29 times

0

I have an array that is mounted by https://github.com/RamonSmit/Nestable2 I was able to display only the CONTENT main (colour red). I would like to know how to display (CONTENT, PERIODO TYPE) [blue color], below each CONTENT leading. How do I mount this foreach correctly to display the above values.

Thank you.

<?php 
foreach (json_decode($row['arrayChecklist'], TRUE) as $ckl) {

    echo $ckl['content']; //Exibe content principal
    foreach(json_decode($row['arrayChecklist'], TRUE) as $ckl2){
        echo $ckl2;
    }
}

echo '<pre>';print_r($ckl);echo '</pre>';
?>

.

[{"content":"CIVIL","id":1,"children":[{"content":"Verificar e recompor na cobertura, rufos, condutores, tirantes, furacões, executando reforço da impermeabilização nesses pontos","id":2,"tipo":"checkbox","periodo":"Semestral","opt":true},{"content":"Verificar estado geral de portões e grades.","id":3,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Avaliação geral das paredes (quebras, desgaste, pinturas)","id":4,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificar estado geral de escadas, corrimões e calçamento efetuando pq reparos (até 5m²)","id":5,"tipo":"checkbox","periodo":"Mensal"},{"content":"Reparos com calafetação de junções em calhas, rufos e condutores.","id":6,"tipo":"checkbox","periodo":"Semestral"},{"content":"Verificar estado geral de conservação de calçadas, pátios, acessos, alambrado.","id":7,"tipo":"checkbox","periodo":"Semestral"},{"content":"Verificar estado de paredes internas, externas e forros efetuando pequenos reparos/pintura (até 20m²).","id":8,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar estado de pisos, carpetes e azulejos efetuando pequenos reparos (até 5m²).","id":9,"tipo":"checkbox","periodo":"Mensal"},{"content":"Lubrificação de portões.","id":10,"tipo":"checkbox","periodo":"Mensal"}]},{"content":"INSTALAÇÕES HIDRÁULICAS E PLUVIAIS","id":11,"children":[{"content":"Verificar estado geral de ralos, caixas de gordura e tubulações em geral dos sanitários e copa efetuando os reparos necessários.","id":12,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificar dispositivos de acionamento dos vasos sanitários.","id":13,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar metais e acessórios defeituosos (sifões, torneiras, válvulas, grelhas de ralo, saboneteiras, espelhos, assentos, engates, etc).","id":14,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificação de vazamentos.","id":15,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar funcionamento das torneiras e vazamentos dos bebedouros.","id":16,"tipo":"checkbox","periodo":"Mensal"}]},{"content":"INSTALAÇÕES ELÉTRICAS","id":17,"children":[{"content":"Substituir lâmpadas queimadas, soquetes, fotocélulas, reatores, starters, disjuntores, etc","id":18,"tipo":"checkbox","periodo":"Mensal"},{"content":"Luminárias: limpar, verificar fixação, fiação, acrílicos, bocais, vidros de proteção, etc.","id":19,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar estado geral de tomadas, interruptores, telefone e cabo de rede, corrigindo eventuais problemas.","id":20,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar estado geral de quadros de distribuição e de medição, substituindo elementos defeituosos, verificando fixações, conexões, isolações, aterramento.","id":21,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Relacionar circuitos que estejam com superaquecimento, indicando capacidade do disjuntor, corrente medida a plena carga e bitola do condutor e orçar a correção.","id":22,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificar funcionamento, substituir eventuais peças danificadas (lâmpadas, baterias, etc) em luminárias de emergência.","id":23,"tipo":"checkbox","periodo":"Mensal"}]}]

IMG Array: inserir a descrição da imagem aqui

1 answer

1


If JSON is already decoded there is no reason to decode it again.


Just use $ckl['children'][{index}]['tipo']. For example, if you want to always take the first tipo of each one it would be enough to change the $ckl['content'] for $ckl['children']['0']['tipo']. Obviously, this can also be done in another foreach, in order to obtain all the tipos:

<?php 


// Para visualização:
const SUFIX = PHP_EOL;

// Assumindo que $row['arrayChecklist']  é o JSON:
$row['arrayChecklist'] = '[{"content":"CIVIL","id":1,"children":[{"content":"Verificar e recompor na cobertura, rufos, condutores, tirantes, furacões, executando reforço da impermeabilização nesses pontos","id":2,"tipo":"checkbox","periodo":"Semestral","opt":true},{"content":"Verificar estado geral de portões e grades.","id":3,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Avaliação geral das paredes (quebras, desgaste, pinturas)","id":4,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificar estado geral de escadas, corrimões e calçamento efetuando pq reparos (até 5m²)","id":5,"tipo":"checkbox","periodo":"Mensal"},{"content":"Reparos com calafetação de junções em calhas, rufos e condutores.","id":6,"tipo":"checkbox","periodo":"Semestral"},{"content":"Verificar estado geral de conservação de calçadas, pátios, acessos, alambrado.","id":7,"tipo":"checkbox","periodo":"Semestral"},{"content":"Verificar estado de paredes internas, externas e forros efetuando pequenos reparos/pintura (até 20m²).","id":8,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar estado de pisos, carpetes e azulejos efetuando pequenos reparos (até 5m²).","id":9,"tipo":"checkbox","periodo":"Mensal"},{"content":"Lubrificação de portões.","id":10,"tipo":"checkbox","periodo":"Mensal"}]},{"content":"INSTALAÇÕES HIDRÁULICAS E PLUVIAIS","id":11,"children":[{"content":"Verificar estado geral de ralos, caixas de gordura e tubulações em geral dos sanitários e copa efetuando os reparos necessários.","id":12,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificar dispositivos de acionamento dos vasos sanitários.","id":13,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar metais e acessórios defeituosos (sifões, torneiras, válvulas, grelhas de ralo, saboneteiras, espelhos, assentos, engates, etc).","id":14,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificação de vazamentos.","id":15,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar funcionamento das torneiras e vazamentos dos bebedouros.","id":16,"tipo":"checkbox","periodo":"Mensal"}]},{"content":"INSTALAÇÕES ELÉTRICAS","id":17,"children":[{"content":"Substituir lâmpadas queimadas, soquetes, fotocélulas, reatores, starters, disjuntores, etc","id":18,"tipo":"checkbox","periodo":"Mensal"},{"content":"Luminárias: limpar, verificar fixação, fiação, acrílicos, bocais, vidros de proteção, etc.","id":19,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar estado geral de tomadas, interruptores, telefone e cabo de rede, corrigindo eventuais problemas.","id":20,"tipo":"checkbox","periodo":"Mensal"},{"content":"Verificar estado geral de quadros de distribuição e de medição, substituindo elementos defeituosos, verificando fixações, conexões, isolações, aterramento.","id":21,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Relacionar circuitos que estejam com superaquecimento, indicando capacidade do disjuntor, corrente medida a plena carga e bitola do condutor e orçar a correção.","id":22,"tipo":"checkbox","periodo":"Mensal","opt":true},{"content":"Verificar funcionamento, substituir eventuais peças danificadas (lâmpadas, baterias, etc) em luminárias de emergência.","id":23,"tipo":"checkbox","periodo":"Mensal"}]}]';


foreach (json_decode($row['arrayChecklist'], true) as $_ => $val){

    echo $val['content'] . SUFIX;


    foreach($val['children'] as $_ => $val) {
        echo sprintf('[%s] %s' . SUFIX, $val['tipo'], $val['content']);
    }

    echo SUFIX;
}

Test here.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.