note 30222 deleted from function.strcoll by didou

From: Date: Sat, 16 Aug 2003 19:57:11 +0000
Subject: note 30222 deleted from function.strcoll by didou
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-54440@lists.php.net to get a copy of this message
Note Submitter: muell-spam-trash-abfall@kcet.de ---- strcoll()'s behavior is sometimes a little bit confusing. It depends on LC_COLLATE in your locale. <?php $a = 'a'; $b = 'A'; print strcmp ($a, $b) . "\n"; // prints 1 setlocale (LC_COLLATE, 'C'); print "C: " . strcoll ($a, $b) . "\n"; // prints 1 setlocale (LC_COLLATE, 'de_DE'); print "de_DE: " . strcoll ($a, $b) . "\n"; // prints -2 setlocale (LC_COLLATE, 'de_CH'); print "de_CH: " . strcoll ($a, $b) . "\n"; // prints -2 setlocale (LC_COLLATE, 'en_US'); print "en_US: " . strcoll ($a, $b) . "\n"; // prints -2 ?> This is useful e. g. if want to sort an array by using strcoll: <?php $a = array ('a', 'A', 'ä', 'Ä', 'b', 'B'); setlocale (LC_COLLATE, 'C'); usort ($a, 'strcoll'); print_r ($a); ?> This is like sort($a): Array ( [0] => A [1] => B [2] => a [3] => b [4] => Ä [5] => ä ) <?php setlocale (LC_COLLATE, 'de_DE'); usort ($a, 'strcoll'); print_r ($a) ?> This is completely different: Array ( [0] => a [1] => A [2] => ä [3] => Ä [4] => b [5] => B )

« previous php.notes (#54440) next »