Array Results Comparison ()

4

I have an Array () of results, I need to buy if the city of array 0 is equal to the city of array 1, if the city of array 1 is equal to the city of array 2 ... and so on. p>

The print_r of my SQL resulted in this:

Array
(
    [0] => Array
        (
            [tiposervico] => 0
            [endereco] => RUA CARLOS DE LAET
            [numero] => 1275
            [cidade] => 1
            [bairro] => 2
            [falarcom] => ADRIANO
            [idChamada] => 79
        )

    [1] => Array
        (
            [tiposervico] => 1
            [endereco] => 
            [numero] => 
            [cidade] => 1
            [bairro] => 11
            [falarcom] => 
            [idChamada] => 79
        )

    [2] => Array
        (
            [tiposervico] => 1
            [endereco] => 
            [numero] => 
            [cidade] => 2
            [bairro] => 316
            [falarcom] => 
            [idChamada] => 79
        )

    [3] => Array
        (
            [tiposervico] => 1
            [endereco] => 
            [numero] => 
            [cidade] => 2
            [bairro] => 327
            [falarcom] => 
            [idChamada] => 79
        )

    [4] => Array
        (
            [tiposervico] => 1
            [endereco] => 
            [numero] => 
            [cidade] => 1
            [bairro] => 21
            [falarcom] => 
            [idChamada] => 79
        )

)

Could someone tell me a way to compile this comparison in PHP?

I made the php code as follows:

        $contagemTrechoInicial = 0;
        for($contagemTrechos=0; $contagemTrechos<=count($dados)-1; $contagemTrechos++){
            $contagemTrechoInicial++;
            if($dados[$contagemTrechos]['cidade']==$dados[$contagemTrechoInicial]['cidade']) 
                echo "<br>Iguais > (".$dados[$contagemTrechos]['cidade'].")";   
            else echo "<br>Diferentes > (".$dados[$contagemTrechoInicial]['cidade'].")";
        }

But since it's $ countTrecho Start ++; it always fetches one more array, which causes an Undefined offset error: 5.

How can I adjust it to work correctly?

Note: The result of this comparison should be:

Trecho 1: Cidade 1 > Cidade 1 - iguais
Trecho 2: Cidade 1 > Cidade 2 - diferentes
Trecho 3: Cidade 2 > Cidade 2 - iguais
Trecho 4: Cidade 2 > Cidade 1 - diferentes
    
asked by anonymous 02.09.2015 / 15:48

1 answer

0
  

I noticed you succeeded at @rray's suggestion, but it follows a form   alternative to doing the fragment comparison algorithm.

$trechos = array(
        array("cidade" => 1),
        array("cidade" => 1),
        array("cidade" => 2),
        array("cidade" => 2),
        array("cidade" => 1)
);

$indiceAtual = 1;
$limite = count($trechos);

while ($indiceAtual < $limite) {
    $indiceAtual = $indiceAtual - 1;
    for ($x = 1; $x <= 2; $x++) {
        $cidade[] = $trechos[$indiceAtual]['cidade'];
        $indiceAtual++;
    }
    if ($cidade[0] == $cidade[1]) {
        echo 'iguais';
    }else{
        echo 'diferentes';
    }
    unset($cidade);
    echo '<br>';
}

Output:

iguais // 11
diferentes // 12
iguais // 22
diferentes // 21

Explaining the most important parts

The while executes while the total indexes of array of stretches are not reached.

No for I get two stretches (cities) at a time and I put each of them in the $cidade vector. So I can compare each pair of snippets at a time in if .

    
02.09.2015 / 20:04