-
Total de itens
2 -
Registro em
-
Última visita
Reputação
0 ComumSobre Junior SAIZO
-
Relacionar os indices (chaves) de um objeto Array aos indices (chaves) de um array (PHP)
Junior SAIZO respondeu ao tópico de Junior SAIZO em PHP
Depois de muitos testes e muita leitura da documentação do PHP, consigui resolver o meu problema. foreach ($values as $key => $items) { if (in_array(null, $items)) { $status['status'][$key] = "0"; } else { $status['status'][$key] = "1"; } } Quando dou um dd($status) vejo que obtive a confirmação da modificação desejada. "status" => [ 0 => "1" 1 => "0" 2 => "0" ]- 1 resposta
-
- phpmyadmin
- mysql
-
(e mais 1 )
Tags:
-
Relacionar os indices (chaves) de um objeto Array aos indices (chaves) de um array (PHP)
Junior SAIZO postou um tópico no fórum PHP
Estou com uma duvida na qual não obtive solução. Tenho um objeto Array values e um array status, onde eu quero relacionar os índices do objeto Array values aos indices do array status. De modo que eu possa escrever um teste lógico onde: Se o indice 0 do objeto Array values for diferente de null (ou seja, contém valor), então o indice 0 do array status receberá o valor '1'. OU Se o indice 1 do objeto Array values for diferente de null (ou seja, contém valor), então o indice 1 do array status receberá o valor 1. Por exemplo, antes do teste lógico: values:[ 0 => [ 0 => "1,02" 1 => "2,032" 2 => "32,01" 3 => "0,021" ] 1 => [ 0 => "null" 1 => "null" 2 => "8,258" 3 => "1,021" ] 2 => [ 0 => "4,021" 1 => "6,258" 2 => "null" 3 => "10" ] ] status:[ 0 => "0" 1 => "0" 2 => "0" ] Após o teste lógico: status:[ 0 => "1" 1 => "0" 2 => "0" ] Neste exemplo só o indice 0 do array status recebeu o valor "1", porque APENAS o array 0 do objeto Array values tinha valores diferente de null. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- O array status sempre terá o mesmo número de índices que o objeto Array values terá de arrays (Se array status tem 5 indices (0, 1, 2, 3, 4), o objeto Array value terá 5 arrays (0, 1, 2, 3, 4)). Além disso o array status sempre iniciará com os valores do indice igual a '0'. E se os valores dos indices do objeto values forem TODOS diferentes de null, cada indice do array status receberá o valor '1'. Exemplificando: <?php status:[ 0 => "1", 1 => "1", 2 => "1", ] ?> Em outro fórum obtive a seguinte resposta: <?php $aValues = [ 0 => [ 0 => "1,023" , 1 => "0,023" , 2 => "5,023" , 3 => "1" ], 1 => [ 0 => null , 1 => null , 2 => "5" , 3 => "1,87" ], 2 => [ 0 => "null" , 1 => null , 2 => null , 3 => null ] ]; $aStatus = [ 0 => 0 , 1 => 0 , 2 => 0 ]; foreach ($aValues as $chave => $values) { $status = 1; foreach ($values as $value) { // se tiver qquer valor null status recebe 0 if ($value == null) { $status = 0; break; } } $aStatus[$chave] = $status; } echo '<pre>'; print_r($aStatus); ?> Porém, quando eu executo o código NÂO é me retornado o array status com os indices com valores "0" ou "1", me retorna apenas uma nova chave FORA do array status com algum valor "0" ou "1". Tentei modificar o código ou tentar uma abordagem diferente, mas sem resultado. Vou inserir uma imagem para melhor compreensão do que o código me retorna. Espero ter sido claro na minha dúvida. Desde já, agradeço.- 1 resposta
-
- phpmyadmin
- mysql
-
(e mais 1 )
Tags: