@@ -2031,9 +2031,9 @@ public function testSortByString($collection)
2031
2031
$ this ->assertEquals ([['name ' => 'dayle ' ], ['name ' => 'taylor ' ]], array_values ($ data ->all ()));
2032
2032
2033
2033
$ data = new $ collection ([['name ' => 'taylor ' ], ['name ' => 'dayle ' ]]);
2034
- $ data = $ data ->sortBy ('name ' , SORT_STRING );
2034
+ $ data = $ data ->sortBy ('name ' , SORT_STRING , true );
2035
2035
2036
- $ this ->assertEquals ([['name ' => 'dayle ' ], ['name ' => 'taylor ' ]], array_values ($ data ->all ()));
2036
+ $ this ->assertEquals ([['name ' => 'taylor ' ], ['name ' => 'dayle ' ]], array_values ($ data ->all ()));
2037
2037
}
2038
2038
2039
2039
/**
@@ -2077,6 +2077,88 @@ public function testSortByAlwaysReturnsAssoc($collection)
2077
2077
$ this ->assertEquals ([1 => ['sort ' => 1 ], 0 => ['sort ' => 2 ]], $ data ->all ());
2078
2078
}
2079
2079
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
+
2080
2162
/**
2081
2163
* @dataProvider collectionClassProvider
2082
2164
*/
0 commit comments