Cristyan Henrich Postado Julho 6, 2022 Denunciar Share Postado Julho 6, 2022 [ [ { "all": { "2": { "id": "2", "course": "2", "completion": "1", "deletioninprogress": "0" }, "3": { "id": "3", "course": "2", "completion": "1", "deletioninprogress": "0" }, "4": { "id": "4", "course": "2", "completion": "1", "deletioninprogress": "0" }, "5": { "id": "5", "course": "2", "completion": "1", "deletioninprogress": "0" } } }, { "completed": [ { "15": { "id": "15", "coursemoduleid": "4", "userid": "4", "completionstate": "1", "viewed": "0", "overrideby": null, "timemodified": "1657111281" } }, { "16": { "id": "16", "coursemoduleid": "5", "userid": "4", "completionstate": "1", "viewed": "0", "overrideby": null, "timemodified": "1657111600" } } ] } ], [ { "all": { "7": { "id": "7", "course": "3", "completion": "1", "deletioninprogress": "0" }, "8": { "id": "8", "course": "3", "completion": "1", "deletioninprogress": "0" }, "9": { "id": "9", "course": "3", "completion": "1", "deletioninprogress": "0" } } }, { "completed": [ { "3": { "id": "3", "coursemoduleid": "7", "userid": "4", "completionstate": "1", "viewed": "0", "overrideby": null, "timemodified": "1656330304" } }, { "4": { "id": "4", "coursemoduleid": "8", "userid": "4", "completionstate": "1", "viewed": "0", "overrideby": null, "timemodified": "1656330308" } }, { "13": { "id": "13", "coursemoduleid": "9", "userid": "4", "completionstate": "1", "viewed": "0", "overrideby": null, "timemodified": "1657110515" } } ] } ] ] Citar Link para o comentário Compartilhar em outros sites More sharing options...
1 lowys Postado Julho 6, 2022 Denunciar Share Postado Julho 6, 2022 A partir do momento em que esse json for um array php, itere com foreach: https://www.php.net/manual/en/control-structures.foreach.php Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Julho 6, 2022 Denunciar Share Postado Julho 6, 2022 Eu consegui chegar na chave id com a ajuda de vários foreach: <?php $array= // copiar do fórum $json=json_decode($array); foreach($json as $key=>$value){ echo "campo principal $key<br>"; foreach($value as $key1=>$value1){ echo "->campo1 $key1 <br>"; foreach($value1 as $key2=>$value2){ echo "-->campo2 $key2 <br>"; foreach($value2 as $key3=>$value3){ echo "--->campo3 $key3 <br>"; foreach($value3 as $key4=>$value4){ echo "---->campo4 $key4 <br>"; }}}}} ---------------------------------------------------------------------------- resultado: campo principal 0 ->campo1 0 -->campo2 all --->campo3 2 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 3 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 4 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 5 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress ->campo1 1 -->campo2 completed --->campo3 0 ---->campo4 15 --->campo3 1 ---->campo4 16 campo principal 1 ->campo1 0 -->campo2 all --->campo3 7 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 8 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 9 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress ->campo1 1 -->campo2 completed --->campo3 0 ---->campo4 3 --->campo3 1 ---->campo4 4 --->campo3 2 ---->campo4 13 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Julho 6, 2022 Denunciar Share Postado Julho 6, 2022 Para ter apenas os valores do id, eu faria assim: <?php $array= // copiar do forum $json=json_decode($array); foreach($json as $key=>$value){ foreach($value as $key1=>$value1){ foreach($value1 as $key2=>$value2){ foreach($value2 as $key3=>$value3){ foreach($value3 as $key4=>$value4){ if ($key4=="id"){ echo "---->campo4 $key4 : $value4 <br>"; }}}}}} -------------------------------------------- resultado: ---->campo4 id : 2 ---->campo4 id : 3 ---->campo4 id : 4 ---->campo4 id : 5 ---->campo4 id : 7 ---->campo4 id : 8 ---->campo4 id : 9 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Julho 6, 2022 Denunciar Share Postado Julho 6, 2022 Agora, fazendo a prova dos nove, eu percebi que o meu algoritmo está errado. Ele não pega nenhum id do grupo completed. Que coisa! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Julho 6, 2022 Denunciar Share Postado Julho 6, 2022 Bom, eu fiz mais uma tentativa, dividi o grande problema em menores, e assim ficou: <?php $array = // copiar do fórum $json=json_decode($array,true); $jsonAll0=$json[0][0]['all']; $jsonAll1=$json[1][0]['all']; $jsonCompl0=$json[0][1]['completed']; $jsonCompl1=$json[1][1]['completed']; echo "Todos os ids do grupo all número 0<br>"; foreach($jsonAll0 as $key=>$value) { foreach($value as $key2=>$value2){ if($key2=="id"){echo "$key2:$value2<br>";}}} echo "Todos os ids do grupo all número 1<br>"; foreach($jsonAll1 as $key=>$value) { foreach($value as $key2=>$value2){ if($key2=="id"){echo "$key2:$value2<br>";}}} echo "Todos os ids do grupo completed número 0<br>"; foreach($jsonCompl0 as $key=>$value) { foreach($value as $key2=>$value2){ foreach($value2 as $key3=>$value3){ if($key3=="id"){echo "$key3:$value3<br>";}}}} echo "Todos os ids do grupo completed número 1<br>"; foreach($jsonCompl1 as $key=>$value) { foreach($value as $key2=>$value2){ foreach($value2 as $key3=>$value3){ if($key3=="id"){echo "$key3:$value3<br>";}}}} -------------------------------------------------------------------------------- Resultado: Todos os ids do grupo all número 0 id:2 id:3 id:4 id:5 Todos os ids do grupo all número 1 id:7 id:8 id:9 Todos os ids do grupo completed número 0 id:15 id:16 Todos os ids do grupo completed número 1 id:3 id:4 id:13 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Cristyan Henrich
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.