1--TEST--
2Test rsort() function : usage variations - numeric values
3--SKIPIF--
4<?php
5if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
6?>
7--FILE--
8<?php
9/* Prototype  : bool rsort(array &$array_arg [, int $sort_flags])
10 * Description: Sort an array in reverse order
11 * Source code: ext/standard/array.c
12 */
13
14/*
15 * Pass arrays containing different numeric data to rsort() to test behaviour
16 */
17
18echo "*** Testing rsort() : variation ***\n";
19
20// group of various arrays
21
22$various_arrays = array (
23// negative/positive integers array
24array(11, -11, 21, -21, 31, -31, 0, 41, -41),
25
26// float value array
27array(10.5, -10.5, 10.5e2, 10.6E-2, .5, .01, -.1),
28
29// mixed value array
30array(.0001, .0021, -.01, -1, 0, .09, 2, -.9, 10.6E-2, -10.6E-2, 33),
31
32// array values contains minimum and maximum ranges
33array(2147483647, 2147483648, -2147483647, -2147483648, -0, 0, -2147483649)
34);
35
36// set of possible flag values
37$flag_value = array("SORT_REGULAR" => SORT_REGULAR, "SORT_NUMERIC" => SORT_NUMERIC);
38
39$count = 1;
40
41// loop through to test rsort() with different arrays
42foreach ($various_arrays as $array) {
43  echo "\n-- Iteration $count --\n";
44
45  echo "- With Defualt sort flag -\n";
46  $temp_array = $array;
47  var_dump(rsort($temp_array) );
48  var_dump($temp_array);
49
50  // loop through $flag_value array and setting all possible flag values
51  foreach($flag_value as $key => $flag){
52    echo "- Sort flag = $key -\n";
53    $temp_array = $array;
54    var_dump(rsort($temp_array, $flag) );
55    var_dump($temp_array);
56  }
57  $count++;
58}
59
60echo "Done";
61?>
62
63--EXPECTF--
64*** Testing rsort() : variation ***
65
66-- Iteration 1 --
67- With Defualt sort flag -
68bool(true)
69array(9) {
70  [0]=>
71  int(41)
72  [1]=>
73  int(31)
74  [2]=>
75  int(21)
76  [3]=>
77  int(11)
78  [4]=>
79  int(0)
80  [5]=>
81  int(-11)
82  [6]=>
83  int(-21)
84  [7]=>
85  int(-31)
86  [8]=>
87  int(-41)
88}
89- Sort flag = SORT_REGULAR -
90bool(true)
91array(9) {
92  [0]=>
93  int(41)
94  [1]=>
95  int(31)
96  [2]=>
97  int(21)
98  [3]=>
99  int(11)
100  [4]=>
101  int(0)
102  [5]=>
103  int(-11)
104  [6]=>
105  int(-21)
106  [7]=>
107  int(-31)
108  [8]=>
109  int(-41)
110}
111- Sort flag = SORT_NUMERIC -
112bool(true)
113array(9) {
114  [0]=>
115  int(41)
116  [1]=>
117  int(31)
118  [2]=>
119  int(21)
120  [3]=>
121  int(11)
122  [4]=>
123  int(0)
124  [5]=>
125  int(-11)
126  [6]=>
127  int(-21)
128  [7]=>
129  int(-31)
130  [8]=>
131  int(-41)
132}
133
134-- Iteration 2 --
135- With Defualt sort flag -
136bool(true)
137array(7) {
138  [0]=>
139  float(1050)
140  [1]=>
141  float(10.5)
142  [2]=>
143  float(0.5)
144  [3]=>
145  float(0.106)
146  [4]=>
147  float(0.01)
148  [5]=>
149  float(-0.1)
150  [6]=>
151  float(-10.5)
152}
153- Sort flag = SORT_REGULAR -
154bool(true)
155array(7) {
156  [0]=>
157  float(1050)
158  [1]=>
159  float(10.5)
160  [2]=>
161  float(0.5)
162  [3]=>
163  float(0.106)
164  [4]=>
165  float(0.01)
166  [5]=>
167  float(-0.1)
168  [6]=>
169  float(-10.5)
170}
171- Sort flag = SORT_NUMERIC -
172bool(true)
173array(7) {
174  [0]=>
175  float(1050)
176  [1]=>
177  float(10.5)
178  [2]=>
179  float(0.5)
180  [3]=>
181  float(0.106)
182  [4]=>
183  float(0.01)
184  [5]=>
185  float(-0.1)
186  [6]=>
187  float(-10.5)
188}
189
190-- Iteration 3 --
191- With Defualt sort flag -
192bool(true)
193array(11) {
194  [0]=>
195  int(33)
196  [1]=>
197  int(2)
198  [2]=>
199  float(0.106)
200  [3]=>
201  float(0.09)
202  [4]=>
203  float(0.0021)
204  [5]=>
205  float(0.0001)
206  [6]=>
207  int(0)
208  [7]=>
209  float(-0.01)
210  [8]=>
211  float(-0.106)
212  [9]=>
213  float(-0.9)
214  [10]=>
215  int(-1)
216}
217- Sort flag = SORT_REGULAR -
218bool(true)
219array(11) {
220  [0]=>
221  int(33)
222  [1]=>
223  int(2)
224  [2]=>
225  float(0.106)
226  [3]=>
227  float(0.09)
228  [4]=>
229  float(0.0021)
230  [5]=>
231  float(0.0001)
232  [6]=>
233  int(0)
234  [7]=>
235  float(-0.01)
236  [8]=>
237  float(-0.106)
238  [9]=>
239  float(-0.9)
240  [10]=>
241  int(-1)
242}
243- Sort flag = SORT_NUMERIC -
244bool(true)
245array(11) {
246  [0]=>
247  int(33)
248  [1]=>
249  int(2)
250  [2]=>
251  float(0.106)
252  [3]=>
253  float(0.09)
254  [4]=>
255  float(0.0021)
256  [5]=>
257  float(0.0001)
258  [6]=>
259  int(0)
260  [7]=>
261  float(-0.01)
262  [8]=>
263  float(-0.106)
264  [9]=>
265  float(-0.9)
266  [10]=>
267  int(-1)
268}
269
270-- Iteration 4 --
271- With Defualt sort flag -
272bool(true)
273array(7) {
274  [0]=>
275  float(2147483648)
276  [1]=>
277  int(2147483647)
278  [2]=>
279  int(0)
280  [3]=>
281  int(0)
282  [4]=>
283  int(-2147483647)
284  [5]=>
285  float(-2147483648)
286  [6]=>
287  float(-2147483649)
288}
289- Sort flag = SORT_REGULAR -
290bool(true)
291array(7) {
292  [0]=>
293  float(2147483648)
294  [1]=>
295  int(2147483647)
296  [2]=>
297  int(0)
298  [3]=>
299  int(0)
300  [4]=>
301  int(-2147483647)
302  [5]=>
303  float(-2147483648)
304  [6]=>
305  float(-2147483649)
306}
307- Sort flag = SORT_NUMERIC -
308bool(true)
309array(7) {
310  [0]=>
311  float(2147483648)
312  [1]=>
313  int(2147483647)
314  [2]=>
315  int(0)
316  [3]=>
317  int(0)
318  [4]=>
319  int(-2147483647)
320  [5]=>
321  float(-2147483648)
322  [6]=>
323  float(-2147483649)
324}
325Done