@@ -2031,9 +2031,9 @@ public function testSortByString($collection)
20312031 $ this ->assertEquals ([['name ' => 'dayle ' ], ['name ' => 'taylor ' ]], array_values ($ data ->all ()));
20322032
20332033 $ data = new $ collection ([['name ' => 'taylor ' ], ['name ' => 'dayle ' ]]);
2034- $ data = $ data ->sortBy ('name ' , SORT_STRING );
2034+ $ data = $ data ->sortBy ('name ' , SORT_STRING , true );
20352035
2036- $ this ->assertEquals ([['name ' => 'dayle ' ], ['name ' => 'taylor ' ]], array_values ($ data ->all ()));
2036+ $ this ->assertEquals ([['name ' => 'taylor ' ], ['name ' => 'dayle ' ]], array_values ($ data ->all ()));
20372037 }
20382038
20392039 /**
@@ -2077,6 +2077,88 @@ public function testSortByAlwaysReturnsAssoc($collection)
20772077 $ this ->assertEquals ([1 => ['sort ' => 1 ], 0 => ['sort ' => 2 ]], $ data ->all ());
20782078 }
20792079
2080+ #[DataProvider('collectionClassProvider ' )]
2081+ public function testSortByMany ($ collection )
2082+ {
2083+ $ data = new $ collection ([['item ' => '1 ' ], ['item ' => '10 ' ], ['item ' => 5 ], ['item ' => 20 ]]);
2084+ $ expected = $ data ->pluck ('item ' )->toArray ();
2085+
2086+ sort ($ expected );
2087+ $ data = $ data ->sortBy (['item ' ]);
2088+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2089+
2090+ rsort ($ expected );
2091+ $ data = $ data ->sortBy ([['item ' , 'desc ' ]]);
2092+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2093+
2094+ sort ($ expected , SORT_STRING );
2095+ $ data = $ data ->sortBy (['item ' ], SORT_STRING );
2096+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2097+
2098+ rsort ($ expected , SORT_STRING );
2099+ $ data = $ data ->sortBy ([['item ' , 'desc ' ]], SORT_STRING );
2100+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2101+
2102+ sort ($ expected , SORT_NUMERIC );
2103+ $ data = $ data ->sortBy (['item ' ], SORT_NUMERIC );
2104+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2105+
2106+ rsort ($ expected , SORT_NUMERIC );
2107+ $ data = $ data ->sortBy ([['item ' , 'desc ' ]], SORT_NUMERIC );
2108+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2109+
2110+ $ data = new $ collection ([['item ' => 'img1 ' ], ['item ' => 'img101 ' ], ['item ' => 'img10 ' ], ['item ' => 'img11 ' ]]);
2111+ $ expected = $ data ->pluck ('item ' )->toArray ();
2112+
2113+ sort ($ expected , SORT_NUMERIC );
2114+ $ data = $ data ->sortBy (['item ' ], SORT_NUMERIC );
2115+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2116+
2117+ sort ($ expected );
2118+ $ data = $ data ->sortBy (['item ' ]);
2119+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2120+
2121+ sort ($ expected , SORT_NATURAL );
2122+ $ data = $ data ->sortBy (['item ' ], SORT_NATURAL );
2123+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2124+
2125+ $ data = new $ collection ([['item ' => 'img1 ' ], ['item ' => 'Img101 ' ], ['item ' => 'img10 ' ], ['item ' => 'Img11 ' ]]);
2126+ $ expected = $ data ->pluck ('item ' )->toArray ();
2127+
2128+ sort ($ expected );
2129+ $ data = $ data ->sortBy (['item ' ]);
2130+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2131+
2132+ sort ($ expected , SORT_NATURAL | SORT_FLAG_CASE );
2133+ $ data = $ data ->sortBy (['item ' ], SORT_NATURAL | SORT_FLAG_CASE );
2134+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2135+
2136+ sort ($ expected , SORT_FLAG_CASE | SORT_STRING );
2137+ $ data = $ data ->sortBy (['item ' ], SORT_FLAG_CASE | SORT_STRING );
2138+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2139+
2140+ sort ($ expected , SORT_FLAG_CASE | SORT_NUMERIC );
2141+ $ data = $ data ->sortBy (['item ' ], SORT_FLAG_CASE | SORT_NUMERIC );
2142+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2143+
2144+ $ data = new $ collection ([['item ' => 'Österreich ' ], ['item ' => 'Oesterreich ' ], ['item ' => 'Zeta ' ]]);
2145+ $ expected = $ data ->pluck ('item ' )->toArray ();
2146+
2147+ sort ($ expected );
2148+ $ data = $ data ->sortBy (['item ' ]);
2149+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2150+
2151+ sort ($ expected , SORT_LOCALE_STRING );
2152+ $ data = $ data ->sortBy (['item ' ], SORT_LOCALE_STRING );
2153+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2154+
2155+ setlocale (LC_ALL , 'de_DE ' );
2156+
2157+ sort ($ expected , SORT_LOCALE_STRING );
2158+ $ data = $ data ->sortBy (['item ' ], SORT_LOCALE_STRING );
2159+ $ this ->assertEquals ($ data ->pluck ('item ' )->toArray (), $ expected );
2160+ }
2161+
20802162 /**
20812163 * @dataProvider collectionClassProvider
20822164 */
0 commit comments