Collator::asort
collator_asort
(No version information available, might be only in CVS)
collator_asort — Sort array maintaining index association
Описание
Object oriented style
Procedural style
This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. Array elements will have sort order according to current locale rules.
Equivalent to standard PHP asort().
Список параметров
- coll
-
Collator object.
- arr
-
Array of strings to sort.
- sort_flag
-
Optional sorting type, one of the following:
-
Collator::SORT_REGULAR - compare items normally (don't change types)
-
Collator::SORT_NUMERIC - compare items numerically
-
Collator::SORT_STRING - compare items as strings
Default $sort_flag value is Collator::SORT_REGULAR. It is also used if an invalid $sort_flag value has been specified.
-
Возвращаемые значения
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Примеры
Пример #1 collator_asort()example
<?php
$coll = collator_create( 'en_US' );
$arr = array(
'a' => '100',
'b' => '50',
'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );
collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>
Результат выполнения данного примера:
array ( 'c' => '7', 'b' => '50', 'a' => '100', )array ( 'a' => '100', 'b' => '50', 'c' => '7', )
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Internationalization Functions
- Функция Collator::asort() - Sort array maintaining index association
- Функция Collator::compare() - Compare two Unicode strings
- Функция Collator::__construct() - Create a collator
- Функция Collator::create() - Create a collator
- Функция Collator::getAttribute() - Get collation attribute value
- Функция Collator::getErrorCode() - Get collator's last error code
- Функция Collator::getErrorMessage() - Get text for collator's last error code
- Функция Collator::getLocale() - Get the locale name of the collator
- Функция Collator::getSortKey() - Get sorting key for a string
- Функция Collator::getStrength() - Get current collation strength
- Функция Collator::setAttribute() - Set collation attribute
- Функция Collator::setStrength() - Set collation strength
- Функция Collator::sortWithSortKeys() - Sort array using specified collator and sort keys
- Функция Collator::sort() - Sort array using specified collator
Коментарии
For those of you who are looking for a way to integrate natural sorting with the UCA rules this hack seems to work:
<?php
$array = array
(
'1', '100',
'al', 'be',
'Alpha', 'Beta',
'Álpha', 'Àlpha', 'Älpha',
'かたかな',
'img1.png', 'img2.png',
'img10.png', 'img20.png'
);
echo '<pre>';
print_r(sortIntl($array, true));
echo '</pre>';
function sortIntl($array, $natural = true)
{
$data = $array;
if ($natural === true)
{
$data = preg_replace_callback('~([0-9]+)~', 'natsortIntl', $data);
}
collator_asort(collator_create('root'), $data);
return array_intersect_key($array, $data);
}
function natsortIntl($number)
{
return sprintf('%032d', $number);
}
?>
Output:
Array
(
[0] => 1
[1] => 100
[2] => al
[3] => be
[4] => Alpha
[5] => Beta
[6] => Álpha
[7] => Àlpha
[8] => Älpha
[9] => かたかな
[10] => img1.png
[11] => img2.png
[12] => img10.png
[13] => img20.png
)