$ar2 = array(1,3,2,5,6,7);
array_multisort($ar2,SORT_DESC);
echo implode("-",$ar2);
echo " => \$ar2 = array(1,3,2,5,6,7);";
=============
bu sonucu alıyorum: (Doğru sonuç)
7-6-5-3-2-1 => $ar2 = array(1,3,2,5,6,7);
===============================================
Kodu bu şekilde çalıştırdığımda ise:
$ar = array(0,100,2,4,7,9);
$ar2 = array(1,3,2,5,6,7);
array_multisort($ar,SORT_DESC,$ar2,SORT_DESC);
echo implode("-",$ar);
echo " => \$ar = array(0,100,2,4,7,9);";
echo "
";
echo implode("-",$ar2);
echo " => \$ar2 = array(1,3,2,5,6,7);";
=============
bu sonucu alıyorum: (Hatalı sonuç)
100-9-7-4-2-0 => $ar = array(0,100,2,4,7,9);
3-7-6-5-2-1 => $ar2 = array(1,3,2,5,6,7);
===============================================
Yani tek bir diziyi kullanırken ($ar2) doğru sonucu veriyor, ancak birden fazla diziyi bir arada kullanırken ($ar, $ar2) hatalı sonuç veriyor. ($ar2'nin sıralaması hatalı)
array_mutlisort() fonksiyonunun kullanım amacı nedir? Buradaki sonuçların hatalı çıkmasının mantıklı bir açıklaması var mıdır? Yardımlarınız için teşekkürler.
https://php.net/manual/tr/function.array-multisort.php?fbclid=IwAR3B_4qbq1DktzeWkuR5lvqzOggbjT1kY3H4IAaZLaZm5T0jK-i3dvqaYNo
BU KONUYU ARAŞTIRANLAR OLURSA BAŞKA BİR FORUMDAN ALDIĞIM CEVABI PAYLAŞIYORUM.
Bir tabloyu sütunlar halinde tuttuğunu düşün. İlk sütun array1, ikinci sütun array2, vs Bu tabloyu ilk sütuna göre sort edersen ikinci sütun nasıl değişecekse öyle sort ediyor ikinciyi de. Yani bağımsız değil, ilk sütundaki karşılığı olan değeri takip ediyor. Eğer ilk sütunda eşit değerler olursa, o zaman ikincileri ayrıca sort ediyor.
Şu sayfadaki örnekleri incele, özellikle ikinci örnek
https://www.php.net/manual/en/function.array-multisort.php