Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::asort -- collator_asortDiziyi indislerin arasındaki ilişkilere göre sıralar

Açıklama

Nesne yönelimli kullanım

bool Collator::asort ( array &$dizi [, int $sıralama_türü ] )

Yordamsal kullanım

bool collator_asort ( Collator $karşılaştırıcı , array &$dizi [, int $sıralama_türü ] )

Bir diziyi indislerinin arasındaki ilişkilere uygun olarak sıralar. Elemanlarının sıralamasının önem kazandığı yerlerde ilişkisel dizilerin içeriğini sıraya sokmakta kullanılır. Dizi elemanları yerele özgü kurallara göre sıralanır.

PHP'nin standart asort() işlevinin eşdeğeridir.

Değiştirgeler

karşılaştırıcı

Collator nesnesi.

dizi

Sıralanacak dizgeleri içeren dizi.

sıralama_türü

İsteğe bağlı sıralama türü şunlardan biri olabilir:

  • Collator::SORT_REGULAR - öğeleri normal olarak karşılaştırır (tür değişmez).

  • Collator::SORT_NUMERIC - öğeler sayısal olarak sıralanır.

  • Collator::SORT_STRING - öğeler dizge olarak karşılaştırılır.

Öntanımlı değer Collator::SORT_REGULAR olup geçersiz sıralama türü belirtildiğinde de geçerli olur.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Örnek 1 - collator_asort() örneği

<?php
$coll 
collator_create'en_US' );
$arr = array(
     
'a' => '100',
     
'b' => '50',
     
'c' => '7'
);
collator_asort$coll$arrCollator::SORT_NUMERIC );
var_export$arr );

collator_asort$coll$arrCollator::SORT_STRING );
var_export$arr );
?>

Yukarıdaki örneğin çıktısı:

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Ayrıca Bakınız

add a note add a note

User Contributed Notes 1 note

up
-2
alix dot axel at NOSPAM dot gmail dot com
7 years ago
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
)
To Top