array_multisort
Çok sayıda diziyi veya çok boyutlu dizileri sıralar
&reftitle.description;
boolarray_multisort
arraydizi1
mixeddizi1_sıralama_düzeniSORT_ASC
mixeddizi1_sıralama_seçenekleriSORT_REGULAR
mixeddiğerleri
array_multisort işlevi çok sayıda diziyi bir kerede
sıralayabileceği gibi çok boyutlu bir diziyi bir veya daha fazla boyuta
göre de sıralayabilir.
İlişkisel (string) anahtarlar korunursa da sayısal indisler
yeniden oluşturulur.
¬e.sort-unstable;
¬e.reset-index;
&reftitle.parameters;
dizi
Sıralanacak dizi.
dizi1_sıralama_düzeni
Önceki dizi bağımsız değişkenini sıralamada kullanılacak düzen.
Artan şekilde sıralamak için SORT_ASC, azalan şekilde
sıralalmak için SORT_DESC.
Bu bağımsız değişken dizi1_sıralama_seçenekleri
bağımsız değişkeniyle yer değiştirebilir. Bu durumda sıralama düzeni olarak
SORT_ASC öntanımlıdır.
dizi1_sıralama_seçenekleri
Önceki dizi bağımsız değişkeni için sıralama seçenekleri
Sıralama türü seçenekleri:
SORT_REGULAR - öğeler normal olarak
karşılaştırılır (türleri değişmez)
SORT_NUMERIC - öğeler sayısal olarak
karşılaştırılır
SORT_STRING - öğeler dizgesel olarak
karşılaştırılır
SORT_LOCALE_STRING - öğeler geçerli yerele göre
dizgesel olarak karşılaştırılır. setlocale ile
belirtilen yerel kullanılır.
SORT_NATURAL - öğeler natsort
işlevinin yaptığı gibi "doğal sıralama" kullanılarak dizgesel olarak
karşılaştırılır.
SORT_FLAG_CASE - dizgeleri harf büyüklüğüne
bakmaksızın sıralamak için SORT_STRING ile
SORT_NATURAL VEYAlanabilir.
Bu bağımsız değişken dizi1_sıralama_düzeni ile yer
değiştirebilir veya hiç belirtilmeyebilir; bu durumda
SORT_REGULAR öntanımlıdır.
diğerleri
Dğer diziler; ardından isteğe bağlı oarak sıralama düzeni ve seçenekleri
belirtilebilir. Yalnızca önceki dizilerdeki eşdeğer öğelere karşılık
gelen öğeler karşılaştırılır. Başka bir deyişle, sıralama
sözlükbilimseldir.
&reftitle.returnvalues;
&return.success;
&reftitle.examples;
- Çok sayıda diziyi sıralamak
]]>
Bu örnekte sıralama sonrasında iki dizi arasındaki elemanlar yerlerine
göre birbirinin karşıtı olmak üzere ilk dizi 0, 10, 100, 100; ikinci
dizi 4, 1, 2, 3 içerir.
int(0)
[1]=> int(10)
[2]=> int(100)
[3]=> int(100)
}
array(4) {
[0]=> int(4)
[1]=> int(1)
[2]=> int(2)
[3]=> int(3)
}
]]>
- Çok boyutlu diziyi sıralamak
]]>
Bu örnekte sıralama sonrasında, ilk dizi "10", 100, 100, 11, "a" dizisine
dönüşecek (artan düzende dizgesel olarak sıralanır), ikinci dizi ise 1,
3, "2", 2, 1 değerlerini içerecektir (azalan düzende sayısal olarak
sıralanır) .
array(5) {
[0]=> string(2) "10"
[1]=> int(100)
[2]=> int(100)
[3]=> int(11)
[4]=> string(1) "a"
}
[1]=> array(5) {
[0]=> int(1)
[1]=> int(3)
[2]=> string(1) "2"
[3]=> int(2)
[4]=> int(1)
}
}
]]>
- Veritabanı sonuçlarının sıralanması
Bu örnek için, veri dizisindeki her eleman tablodaki
bir satıra karşılıktır.
Örnek veri:
Dizi olarak veri dizisi kullanılmıştır. Aynı sonuç
mysqli_fetch_assoc işlevini bir döngü içinde
kullanarak da elde edilebilir.
67, 'baskı' => 2);
$veri[] = array('bölüm' => 86, 'baskı' => 1);
$veri[] = array('bölüm' => 85, 'baskı' => 6);
$veri[] = array('bölüm' => 98, 'baskı' => 2);
$veri[] = array('bölüm' => 86, 'baskı' => 6);
$veri[] = array('bölüm' => 67, 'baskı' => 7);
?>
]]>
Bu örnekte bölüm'ü azalan baskı'yı
artan düzende sıralayacağız.
Satırlara karşılık gelen bir dizimiz var, fakat
array_multisort sütun dizileri gerektiriyor. Bu
nedenle sıralamayı yapmadan önce sütunları elde etmek için şu kodu
kullanacağız:
$satır) {
$bölüm[$anahtar] = $satır['bölüm'];
$baskı[$anahtar] = $satır['baskı'];
}
// Yukarıdaki kod yerine array_column() kullanılabilir
$volume = array_column($veri, 'bölüm');
$edition = array_column($veri, 'baskı');
// bölüm'ü azalan, baskı'yı artan düzende sıralayalım ve
// ortak bir anahtara göre sıralamak için $veri'yi son
// bağımsız değişken olarak ekleyelim
array_multisort($bölüm, SORT_DESC, $baskı, SORT_ASC, $veri);
?>
]]>
Veri kümemiz artık sıraya dizildi:
- Harf büyüklüğüne duyarsız sıralama
SORT_STRING ve SORT_REGULAR
seçenekleri harf büyüklüğüne duyarlı olup, büyük harf ile başlayan
dizgeler sıralamada küçük harfle başlayanlardan önce gelir.
Harf büyüklüğüne duyarsız sıralama yapmak için özgün dizinin önce küçük
harfli bir kopyası oluşturulur.
]]>
&example.outputs;
Alpha
[1] => atomic
[2] => bank
[3] => Beta
)
]]>
&reftitle.seealso;
usort
&seealso.array.sorting;