Ir para conteúdo

Junior SAIZO

Members
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que Junior SAIZO postou

  1. 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.
  2. 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" ]
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.