Relacionar os indices (chaves) de um objeto Array aos indices (chaves) de um array (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.
Discussão (1)
Carregando comentários...