php nepozna slovencinu, tak je nutne si vytvorit vlastne zoradovanie
mal som trocha casu, tak som ti to urobil:
Kód: Vybrať všetko
// code
<?php
function slovakSort($arr)
{
$vystup = Array();
foreach( $arr as $k => $v )
{
if( empty($vystup) )
{
$vystup[] = $v;
}
else
{
foreach( $vystup as $key => $value )
{
if( word($v, $value) == 1 )
{
array_splice($vystup, $key, 0, $v);
$vlozene = true;
break;
}
elseif( word($v, $value) == 0 )
{
array_splice($vystup, ($key+1), 0, $v);
$vlozene = true;
break;
}
}
if( !$vlozene )
$vystup[] = $v;
else
$vlozene = false;
}
}
return $vystup;
}
function word($first, $second)
{
$abeceda = "A a Á á Ä ä B b C c Č č D d Ď ď Dz dz Dž dž E e É é F f G g H h Ch ch I i Í í J j K k L l Ĺ ĺ Ľ ľ M m N n Ň ň O o Ó ó Ô ô P p R r Ŕ ŕ S s Š š T t Ť ť U u Ú ú V v X x Y y Ý ý Z z Ž ž";
$abeceda = split( " ", $abeceda );
$abeceda = array_flip($abeceda);
$vystup = 0;
$n = strlen($first);
if( strlen($first) < strlen($second) )
{
$n = strlen($first);
$vystup = 1;
}
elseif( strlen($first) > strlen($second) )
{
$n = strlen($second);
$vystup = -1;
}
for( $i=0; $i<$n; $i++ )
{
$j = $i + 1;
if( array_key_exists( substr($first, $i, 2), $abeceda ) )
$fChar = substr($first, $i, 2);
elseif( array_key_exists( substr($first, $i, 3), $abeceda ) )
$fChar = substr($first, $i, 3);
else
$fChar = $first[$i];
if( array_key_exists( substr($second, $i, 2), $abeceda ) )
$sChar = substr($second, $i, 2);
elseif( array_key_exists( substr($second, $i, 3), $abeceda ) )
$sChar = substr($second, $i, 3);
else
$sChar = $second[$i];
if( $abeceda[$fChar] > $abeceda[$sChar] )
{
$vystup = -1;
break;
}
elseif( $abeceda[$fChar] < $abeceda[$sChar] )
{
$vystup = 1;
break;
}
}
return $vystup;
}
$pole = Array( "Žaneta", "Džungľa", "Ďakujem", "Chasník", "Ciril", "Žofia", "Alexandra", "Želka", "Sofia" );
$nieco = slovakSort($pole);
print_r($nieco);
?>
Kód: Vybrať všetko
//vystup
Array
(
[0] => Alexandra
[1] => Ciril
[2] => Ďakujem
[3] => Džungľa
[4] => Chasník
[5] => Sofia
[6] => Žaneta
[7] => Želka
[8] => Žofia
)
good luck.