Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manolegal

[Resolvido] Comparar Array

Recommended Posts

Ola amigos do Forum.

Tenho muitas dificuldades na manipulacao de arrays. Desde ja peço desculpas se escrever algo inadequado

Preciso comparar dois campos diferentes em linhas diferentes dentro de um array. Estou usando banco de dados Postgre.

Tenho o seguinte codigo.

 

include("executa.php");

$Sql = "SELECT id_deslocamento, km_saida, km_retorno FROM veiculos_deslocamentos WHERE veiculo_id = '$veiculo_id' AND ('$km_retorno_formato' BETWEEN km_saida AND km_retorno)";
$Resultado = executa($Sql);
   $total_registros = pg_num_rows($Resultado);

while ($linha = pg_fetch_array($Resultado)){
   $id_lancado = $linha["id_deslocamento"];
   $km_saida_bd = $linha["km_saida"];
   $km_retorno_bd = $linha["km_retorno"];

 

Neste caso, $total_registros, retornou 02 linhas. Preciso comparar '$km_saida_bd' da linha 1 com '$km_retorno_bd' para ver se ambos sao iguais. Gostaria da ajuda dos amigos. Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, o que eu entendi foi:

<?php
         $Array1 = Array( 1 => 'Um', 2 => 'Dois', 3 => 'Três' );
         $Array2 = Array( 1 => 'Um', 2 => 'Dois', 3 => 'Três' );
         for( $i = 1; $i <= sizeOf( $Array1 ); ++$i ){
              if( $Array1[ $i ] == $Array2[ $i ] ){
                  echo $i, '| True', '<br />';
              }else{
                  echo $i, '| False', '<br />';
              }
         }

 

Saída:

1| True
2| True
3| True

 

<?php
         $Array1 = Array( 1 => 'Um', 2 => 'Dois', 3 => 'Três' );
         $Array2 = Array( 1 => 'Ums', 2 => 'Doiss', 3 => 'Três' );
         for( $i = 1; $i <= sizeOf( $Array1 ); ++$i ){
              if( $Array1[ $i ] == $Array2[ $i ] ){
                  echo $i, '| True', '<br />';
              }else{
                  echo $i, '| False', '<br />';
              }
         }

Saída:

1| False
2| False
3| True

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Andrey, obrigado pelo retorno.

É o seguinte. A consulta $Sql retornou 02 linhas:

 

id_lancado km_saida_bd km_retorno_bd

Linha 1 1 1 50

Linha 2 2 50 80

Na verdade eu queria fazer uma comparacao para saber se o 'km_retorno_bd' da Linha 1 é igual ou nao ao 'km_saida_bd' da Linha 2.

Espero ter conseguido explicar. No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o resultado disso.

 

<?php

include("executa.php");

$Sql = "SELECT id_deslocamento, km_saida, km_retorno FROM veiculos_deslocamentos WHERE veiculo_id = '$veiculo_id' AND ('$km_retorno_formato' BETWEEN km_saida AND km_retorno)";

$Resultado = executa($Sql);

while( $linha = pg_fetch_assoc( $Resultado ) )
{	
$result[] = $linha
}

echo '<pre>';
var_dump( $result );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Carlos. Obrigado pela ajuda.

 

Retornou o seguinte:

 

array(2) {
 [0]=>
 array(2) {
   ["km_saida"]=>
   string(5) "51203"
   ["km_retorno"]=>
   string(5) "51252"
 }
 [1]=>
 array(2) {
   ["km_saida"]=>
   string(5) "51165"
   ["km_retorno"]=>
   string(5) "51203"
 }
}

 

O que eu preciso é inserir um coigo para comparar o "km_saida" e "km_retorno" dos dois arrays, neste caso "51203".

Compartilhar este post


Link para o post
Compartilhar em outros sites

você quer

array(2) {
 [0]=>
 array(2) {
   ["km_saida"]=> string(5) "51203" // pegar esse valor
   ["km_retorno"]=> string(5) "51252"
 }
 [1]=>
 array(2) {
   ["km_saida"]=> string(5) "51165"
   ["km_retorno"]=> string(5) "51203" // e comparar com esse
 }
}

 

É isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente isso Carlos. Se os valores dos campos forem iguais, eu prossigo o código, caso contrário encerro o código. A dificuldade é criar o código para comparar os campos. No aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude o código para:

<?php

include("executa.php");

$Sql = "SELECT id_deslocamento, km_saida, km_retorno FROM veiculos_deslocamentos WHERE veiculo_id = '$veiculo_id' AND ('$km_retorno_formato' BETWEEN km_saida AND km_retorno)";

$Resultado = executa($Sql);

while( $linha = pg_fetch_assoc( $Resultado ) )
{       
       $km_saida[ ] = $linha[ 'km_saida' ];
$km_retorno[ ] = $linha[ 'km_retorno' ]
}

if( reset( $km_saida ) == end( $km_retorno ) )
{
echo 'iguais';
}
else
{
echo 'diferentes';
}

?>

 

Acho que isso resolve seu problema :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos. Alterei o código, e ao executá-lo aparece a seguinte mensagem:

 

Fatal error: [] operator not supported for strings in /var.....

 

Em referencia a linha "$km_saida[ ] = $linha['km_saida'];".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se já existe variáveis com estes nomes antes desta parte do código, você terá que mudar os nomes das variáveis que utilizei

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza Carlos. Alterei os nomes das variaveis e resultou "iguais", tudo certo.

Obrigado mesmo pela força. Um grande abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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