Autor Zpráva
Ewinko
Profil
Ak mam ARRAY a wnom premene s diakritikou..ako ich zoradit A-Z ?
Wie niekto ako sa toto kuzlo uskutocnit?

Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Majkl578
Profil
Jakým jazykem to mluvíš? Slova "wnom" a "wie"jsem ještě ve slovenštině neviděl.

Napsal jsem na to script, půjde pravděpodobně pouze na unixu, kde bude přítomná locale 'cs_CZ.UTF-8'.
Script předpokládá použití UTF-8 kódování.
$data = array(
	'ahoj',
	'prezident',
	'dobrý den',
	'člověk',
	'babička',
	'škola',
	'čokoláda',
	'šátek',
	'pes',
	'kočka',
);

function localeSort(&$ary)
{
	if (!setlocale(LC_ALL, 'cs_CZ.UTF-8')) {
		throw new Exception('Locale cs_CZ.UTF-8 not found on your system');
	}
	function _cmp($a, $b)
	{
		$a = preg_split('~~u', $a, -1, PREG_SPLIT_NO_EMPTY);
		$b = preg_split('~~u', $b, -1, PREG_SPLIT_NO_EMPTY);
		for ($i = 0, $u = count($a); $i < $u; $i++) {
			for ($j = 0, $v = count($b); $j < $v; $j++) {
				$cmp = strcoll($a[$i], $b[$j]);
				if ($cmp === 0) {
					continue;
				}
				return $cmp;
			}
			return 0;
		}
	}
	usort($ary, '_cmp');
}

localeSort($data);
var_dump($data);


Pokud to budeš chtít použít, s největší pravděpodobností si to budeš muset upravit (například nastavit slovenskou locale).
ewinko
Profil *
Majkl578:
Ja som myslel ze sa tu bawi o php a nie o slowencine..kazdopadne za script wdaka


Moderátor nightfish: Tvůj projev je špatně srozumitelný, nepiš jak hovado.
indián
Profil *
Majkl578:
Můžete prosím podrobněji vysvětlit účel cyklu ve Vaší funkci? Podle dokumentace by měla stačit funkce
sort($data, SORT_LOCALE_STRING)
Majkl578
Profil
indián:
Stačí.
Jsem také jen člověk a také neznám všechno. Sort znám, ale konkrétně tenhle flag ne. Výsledek je stejný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: