elemek ABC sorrendbe rendezése

Weblap tervezésénél az egyik legfontosabb dolog az átláthatóság. Ennek egyik alapeleme az, hogy a különböző dolgokat ABC sorrendben írjuk ki…
Én ma belefutottam abba a problémába, hogy a Magyarországon levő megyéket ABC sorrendben szerettem volna kiírni… Lustaság fél egészség alapon inkább írtam egy rövid szkriptet, ami egy megadott TXT file sorait ABC sorrendben adja vissza…

kód

function abc_sort($file, $template="")
{
if(!file_exists($file) OR !is_readable($file))
{
return false;
}

$fa = fopen($file,’r’);
while($data = fgets($fa, 1024))
{
$array[count($array)] = $data;
}
natsort($array);
foreach($array as $variable)
{
if($template == ”)
{
$return .= $variable . "<br>\n";
}
else
{
$return .= ereg_replace(‘{VALUE}’, $variable, $template) . "\n";
}
}
return $return;
}

Nézzük mit csinál ez a kód!
Két változót fogad el, az első kötelező, a második nem. Az első változó egy filenév-nek kell, hogy legyen. Ha létezik a file, és olvasható is, akkor megnyitja a file, és minden sort kiolvas belőle.

Ezután a "Natural Order" (természetes sorrend… Hogy az ABC mitől természetes az kérdéses, de ez most részletkérdés…) szerint sorrendbe rakja őket, és utánna ezeket soronként visszaadja.

Ha nem adtuk meg a sémát a második változóban, akkor úgy, hogy minden egyes sort egy új sorba ír ki és kész, ha megadtuk, akkor a séma szerint. Utóbbi esetben a sor szövegét a {VALUE} szöveggel helyettesítjük…

Használat:
Valahova a PHP oldalunk-ba szúrjuk be ezt a kódod, és utánna így hívjuk meg:

kód

print abc_sor(‘file_neve’);

Az én példámra visszatérve, én ugye a megyéket akartam kilistázni. A megyéket a megyék.txt fileban tároltam el, olyan sorrendben, ahogy eszembe jutottak, és mivel egy <SELECT-be akartam az értékeket berakni a következő képpen kellett formáznom:

kód

print abc_sor(‘file_neve’, ‘<OPTION value="{VALUE}">{VALUE}</OPTION>’);

(Zárójeles megjegyzés: ugyan nem teszteltem, de gondolom ha sok sorról van szó (több százezer), akkor egy kicsit lassú lehet… Akár másodperces nagyságrend, ami – mint tudjuk – PHP-nél végzetes lehet, ha alacsony értékre van állítva a Maximum excecution time direktíva)

Írta: BlackY

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét