PHP Internationalization and Localization
Sorting in a Locale-Aware Order
Problem
You need to sort text in a way that respects a particular locale’s rules for character ordering.
Solution
Instantiate a Collator object for your locale, and then call its sort() method:
$words = array('Малина', 'Клубника', 'Огурец');
$collator = new Collator('ru_RU');
// Sorts in-place, just like sort()
$collator->sort($words);
Discussion
PHP’s normal text-handling routines just treat strings as sequences of bytes. They know nothing about multibyte characters, let alone each locale’s rules about which characters go “before” which other ones in that locale’s equivalent of alphabetical order. The Collator class, however, uses ICU’s big database of locale-specific information to do this
properly.
The Collator’s sort() method corresponds to the PHP sort() function. Collator also has an asort() method which, just like PHP’s asort() function, maintains index/value association in the sorted array.
No comments:
Post a Comment