(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Collator::setStrength -- collator_set_strength — Sıralamanın seviyesini ayarlar
Nesne yönelimli kullanım
Yordamsal kullanım
» ICU Karşılaştırma Hizmeti çok seviyeli karşılaştırmayı destekler. Bu sınıflandırma sayesinde ICU dizgeleri sıralamayı yerel uzlaşımlara uygun olarak daha büyük hassasiyetle yerine getirir. Bununla birlikte, seviyelerin seçmeli olarak devreye sokulabilmesi sayesinde metin içinde bir dizgenin aranması çeşitli eşleşme koşullarıyla yapılabilir.
      Birincil seviye:
      Bu genel olarak, temel karakterler arasındaki farkları ("a" < "b"
      gibi) ifade etmek için kullanılır. Bu en güçlü farktır. Örneğin
      sözlükler bu temel karakterlere göre farklı bölümlere ayrılırlar. Buna
      ayrıca level 1 nitelik adı verilir.
     
      İkincil seviye:
      Karakterlerdeki aksanlar ikincil farklar olarak ele alınır (örneğin,
      "as" < "às" < "at") Dile bağlı olarak harfler arasındaki diğer
      farklar da ikincil farklar olarak ele alınabilir. Dizgelerin içinde
      herhangi bir yerde birincil dereceden bir farkın varlığında ikincil
      seviyeden bir fark yoksayılır.  Buna ayrıca level 2
      nitelik adı verilir.
      
Bilginize:
Bazı dillerde (Danca gibi) bazı aksanlı karakterler temel karakterler olarak ele alınırlar. Bununla birlikte çoğu dilde aksanlı bir karakter aynı harfin aksansız olanına göre ikinci dereceden bir farktan başka bir şey değildir.
      Üçüncül seviye:
      Büyük ve küçük harfler arasındaki farklar üçüncül seviyeden
      farklardandır (örneğin, "ao" < "Ao" < "aò"). Buna ek olarak, bir
      harfin büyük veya küçük harflisinin temel karakterlerden farkları da
      ("A" ve "𝒶" gibi) üçüncül seviyedendir.  Bu farklara diğer bir örnek de
      büyük ve küçük Kana arasındaki farktır. Dizgelerin içinde
      herhangi bir yerde bir birincil veya ikincil seviyeden farkın varlığında
      üçüncül seviyeden bir fark yoksayılır. Buna ayrıca
      level 3 nitelik adı verilir.
     
      Dördüncül seviye:
      13. seviyede, noktalama yoksayıldığında (Noktalamanın Yoksayılması'na
      bakınız), noktalamalı ve noktalamasız sözcükleri ayırmakta ek bir seviye
      kullanılabilir (örneğin, "ab" < "a-b" < "aB"). Bu fark, birinci,
      ikincil veya üçüncül seviyeden farkların varlığında yoksayılır. Bu,
      level 4 nitelik olarak da bilinir. Dördüncül seviye
      sadece, noktalamanın yok sayılması gerekliyse veya bir Japonca metin
      işleniyorsa kullanılmalıdır (Hiragana işlemi'ne bakınız).
     
      Eş seviye:
      Diğer tüm seviyelerin eşitliğinde eşitliği bozmak için eş seviye
      kullanılır. NFD biçimindeki her dizgenin Unicode kod değerleri, 14.
      seviyede fark bulunmayan durumda, bu seviyede karşılaştırılır. Örneğin
      İbranice şive imleri sadece bu seviyede ayrımsanır. Bu seviye gereksiz
      yere kullanılmamalı, iki dizge arasındaki sadece kod değerleri
      arasındaki farklar gibi oldukça nadir durumlarda
      kullanılmalıdır. Bu seviyenin kullanımı, esasen, hem arttırımlı
      karşılaştırma hem de sıralama anahtarı üretiminde (sıralama anahtarı
      uzunluğunu arttırması gibi) başarımı azaltır. Bu,
      level 5 nitelik olarak da bilinir.
     
Örneğin, bazıları, metin içinde arama yaparken aksanlı karakterleri veya aksanlı karakterleri ve büyük/küçük harf farklarını yoksaymayı seçebilirler. Hemen hemen tüm karakterler ilk üç seviyeye göre ayrımsanabilir ve bu bakımdan çoğu yerelde üçüncül (Tertiary) seviye öntanımlıdır. Bununla birlikte, Alternate özniteliğine Shifted atanırsa, boşluk ve noktalama karakterleri ve simgeler diğer taraftan yoksayılmadıkça bunlar arasındaki eşitlikleri bozmak için dördüncül (Quaternary) seviye kullanılabilir. Karakterler arasında çok hassas ayrım gerekliyse, eş (Identical) seviye de kullanılabilir. (Örneğin, Matematiksel Kalın Küçük A ile Matematiksel Eğik Küçük A arasındaki ayrımı sadece eş seviye sağlayabilir.) Bununla birlikte, üçüncül ve eş seviyelerden daha yüksek seviyelerin kullanımı belirgin şekilde daha uzun sıralama anahtarları ve eş dizgeler arasında daha yavaş karşılaştırma başarımı ile sonuçlanır.
nesneCollator nesnesi.
seviyeAtanacak seviye.
Olası değerler:
Örnek 1 - collator_set_strength() örneği
<?php
$arr  = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );
// Diziyi öntanımlı seviyeyle sıralayalım.
collator_sort( $coll, $arr );
var_export( $arr );
// Diziyi birincil seviyeyle sıralayalım.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>Yukarıdaki örneğin çıktısı:
array ( 0 => 'ao', 1 => 'Ao', 2 => 'aò', ) array ( 0 => 'aò', 1 => 'Ao', 2 => 'ao', )
