<?php
    $linhas = array(
        "T3497012@CHOSTBRHDDSB@EICM_BORA@BPHS@Bamz",
        "T3497012@BHOSTBRHDDSB@EICM_BORA@BPHS@Bamz",
        "T3497012@AHOSTBRHDDSB@EICM_BORA@BPHS@Bamz",
        "T3497012@AHOSTBRHDDSB@EICM_BORB@BPHS@Aama",
        "T3497012@AHOSTBRHDDSB@EICM_BORC@APHS@cama",
        "T2497123@DHOSTBRHDDSB@CICM_BORD@APHS@camb",
        "T2497123@EHOSTBRHDDSB@BICM_BORE@APHS@camc",
        "T5557012@FHOSTBRHDDSB@AICM_BORF@APHS@camd"
    );

    $i = 1;
    for ($i = 0; $i < (count($linhas) - 1); $i++){
        $linhai = explode("@", $linhas[$i]);
        for ($j = $i + 1; $j < count($linhas); $j++){
            $linhaj = explode("@", $linhas[$j]);

            $troca = false;
            if ($linhai[2] > $linhaj[2])
                $troca = true;
            else if (($linhai[2] == $linhaj[2]) && ($linhai[3] > $linhaj[3]))
                $troca = true;
            else if (($linhai[2] == $linhaj[2]) && ($linhai[3] == $linhaj[3]) && ($linhai[4] > $linhaj[4]))
                $troca = true;
            else if (($linhai[2] == $linhaj[2]) && ($linhai[3] == $linhaj[3]) && ($linhai[4] == $linhaj[4]) && ($linhai[1] > $linhaj[1]))
                $troca = true;

            if ($troca){
                $suporte = $linhas[$i];
                $linhas[$i] = $linhas[$j];
                $linhas[$j] = $suporte;
            }
        }
    }
    var_dump($linhas);
?>