Ir para conteúdo
Fórum Script Brasil
  • 0

Qual seria a melhor forma de acessar a chave 'id' do array abaixo com php?


Cristyan Henrich

Pergunta

[
[
    {
        "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"
                }
            }
        ]
    }
]

]

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

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

 

Link para o comentário
Compartilhar em outros sites

  • 0

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

 

Link para o comentário
Compartilhar em outros sites

  • 0

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

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...