[ PHP CODE @ 11.03.2010. 15:42 ] @
Ako npr imam neki niz od "n" elemenata i ako su elementi stringovi i ako ti strigovi izmedju ostalog mogu sadrzati sledece reci:
'Internet'
'TV'
'Telefon'
kako bi se moglo izvrsiti sortiranje niza tako da elementi budu prvo oni koji sadrze npr rec Internet, pa zatim TV, pa Telefon itd?
[ dakipro @ 11.03.2010. 15:52 ] @
A po cemu je to sortiranje onda, po nazivu?
je si li pogledao funkcije u phpmanualu za sortiranje, da li one mogu da posluze?
[ PHP CODE @ 11.03.2010. 16:15 ] @
Pa cilj sortiranja je npr sortiranje po servisu ;) TV, Internet, Telefonija...
Gledao sam manual, al nisam nasao nesto odgovarajuce...
[ Nikola Poša @ 11.03.2010. 16:19 ] @
Pa nisi dobro gledao u manual-u. Takva nestandardna i custom sortiranja uvek moraš da radiš sa onim u* funkcijama, koje koriste callback funkciju za sortiranje. Evo ovo bi npr. moglo da bude rešenje uz primenu usort() funkcije:
Code:
function sortiraj($a, $b)
{
   $reci = array('Internet'=>2, 'TV'=>1, 'Telefon'=>0);

    $x = 0;
    $y = 0;
    $markerx = false;
    $markery = false;
    foreach($reci as $key=>$val) {
        if (strpos($a, $key) !== false && $markerx == false) {
            $x = $val;
            $markerx = true;
        }

        if (strpos($b, $key) !== false && $markery == false) {
            $y = $val;
            $markerx = true;
        }

        if ($markerx == false && $markery == true) {
             break;
        }
    }

    if ($x == $y) {
        return 0;
    }
    return ($x > $y) ? -1 : 1;
}

$niz = array('recenica koja sadrzi Internet', 'recenica koja sadrzi TV', 'opet Internet', 'recenica koja sadrzi Telefon');

usort($niz, "sortiraj");

print_r($niz);

Rezultat:
Code:
Array ( [0] => recenica koja sadrzi Internet [1] => opet Internet [2] => recenica koja sadrzi TV [3] => recenica koja sadrzi Telefon ) 
[ PHP CODE @ 11.03.2010. 18:29 ] @
Bravo! Hvala. Gledao, al nisam video :)