1--TEST--
2Test sort() function : basic functionality
3--FILE--
4<?php
5/* Prototype  : bool sort ( array &$array [, int $sort_flags] )
6 * Description: This function sorts an array.
7                Elements will be arranged from lowest to highest when this function has completed.
8 * Source code: ext/standard/array.c
9*/
10
11/*
12 * Testing sort() by providing arrays with default keys and assoc arrays
13 * to check the basic functionality with following flag values.
14 *  flag value as defualt
15 *  SORT_REGULAR - compare items normally
16 *  SORT_NUMERIC - compare items numerically
17 *  SORT_STRING - compare items as strings
18*/
19
20echo "*** Testing sort() : basic functionality ***\n";
21
22// associative array containing unsorted string values
23$unsorted_strings = array(
24	"l" => "lemon", "o" => "orange",
25	"O" => "Orange", "O1" => "Orange1", "o2" => "orange2", "O3" => "Orange3", "o20" => "orange20",
26	"b" => "banana",
27);
28
29// array with default keys containing unsorted numeric values
30$unsorted_numerics =  array( 100, 33, 555, 22 );
31
32echo "\n-- Testing sort() by supplying string array, 'flag' value is defualt --\n";
33$temp_array = $unsorted_strings;
34var_dump( sort($temp_array) ); // expecting : bool(true)
35var_dump( $temp_array);
36
37echo "\n-- Testing sort() by supplying numeric array, 'flag' value is defualt --\n";
38$temp_array = $unsorted_numerics;
39var_dump( sort($temp_array) ); // expecting : bool(true)
40var_dump( $temp_array);
41
42echo "\n-- Testing sort() by supplying string array, 'flag' = SORT_REGULAR --\n";
43$temp_array = $unsorted_strings;
44var_dump( sort($temp_array, SORT_REGULAR) ); // expecting : bool(true)
45var_dump( $temp_array);
46
47echo "\n-- Testing sort() by supplying numeric array, 'flag' = SORT_REGULAR --\n";
48$temp_array = $unsorted_numerics;
49var_dump( sort($temp_array, SORT_REGULAR) ); // expecting : bool(true)
50var_dump( $temp_array);
51
52echo "\n-- Testing sort() by supplying string array, 'flag' = SORT_STRING --\n";
53$temp_array = $unsorted_strings;
54var_dump( sort($temp_array, SORT_STRING) ); // expecting : bool(true)
55var_dump( $temp_array);
56
57echo "\n-- Testing sort() by supplying string array (case insensitive), 'flag' = SORT_STRING|SORT_FLAG_CASE --\n";
58$temp_array = $unsorted_strings;
59var_dump( sort($temp_array, SORT_STRING|SORT_FLAG_CASE) ); // expecting : bool(true)
60var_dump( $temp_array);
61
62echo "\n-- Testing sort() by supplying string array (natural), 'flag' = SORT_NATURAL --\n";
63$temp_array = $unsorted_strings;
64var_dump( sort($temp_array, SORT_NATURAL) ); // expecting : bool(true)
65var_dump( $temp_array);
66
67echo "\n-- Testing sort() by supplying string array (natural, case insensitive), 'flag' = SORT_NATURAL|SORT_FLAG_CASE --\n";
68$temp_array = $unsorted_strings;
69var_dump( sort($temp_array, SORT_NATURAL|SORT_FLAG_CASE) ); // expecting : bool(true)
70var_dump( $temp_array);
71
72echo "\n-- Testing sort() by supplying numeric array, 'flag' = SORT_NUMERIC --\n";
73$temp_array = $unsorted_numerics;
74var_dump( sort($temp_array, SORT_NUMERIC) ); // expecting : bool(true)
75var_dump( $temp_array);
76
77echo "Done\n";
78?>
79--EXPECT--
80*** Testing sort() : basic functionality ***
81
82-- Testing sort() by supplying string array, 'flag' value is defualt --
83bool(true)
84array(8) {
85  [0]=>
86  string(6) "Orange"
87  [1]=>
88  string(7) "Orange1"
89  [2]=>
90  string(7) "Orange3"
91  [3]=>
92  string(6) "banana"
93  [4]=>
94  string(5) "lemon"
95  [5]=>
96  string(6) "orange"
97  [6]=>
98  string(7) "orange2"
99  [7]=>
100  string(8) "orange20"
101}
102
103-- Testing sort() by supplying numeric array, 'flag' value is defualt --
104bool(true)
105array(4) {
106  [0]=>
107  int(22)
108  [1]=>
109  int(33)
110  [2]=>
111  int(100)
112  [3]=>
113  int(555)
114}
115
116-- Testing sort() by supplying string array, 'flag' = SORT_REGULAR --
117bool(true)
118array(8) {
119  [0]=>
120  string(6) "Orange"
121  [1]=>
122  string(7) "Orange1"
123  [2]=>
124  string(7) "Orange3"
125  [3]=>
126  string(6) "banana"
127  [4]=>
128  string(5) "lemon"
129  [5]=>
130  string(6) "orange"
131  [6]=>
132  string(7) "orange2"
133  [7]=>
134  string(8) "orange20"
135}
136
137-- Testing sort() by supplying numeric array, 'flag' = SORT_REGULAR --
138bool(true)
139array(4) {
140  [0]=>
141  int(22)
142  [1]=>
143  int(33)
144  [2]=>
145  int(100)
146  [3]=>
147  int(555)
148}
149
150-- Testing sort() by supplying string array, 'flag' = SORT_STRING --
151bool(true)
152array(8) {
153  [0]=>
154  string(6) "Orange"
155  [1]=>
156  string(7) "Orange1"
157  [2]=>
158  string(7) "Orange3"
159  [3]=>
160  string(6) "banana"
161  [4]=>
162  string(5) "lemon"
163  [5]=>
164  string(6) "orange"
165  [6]=>
166  string(7) "orange2"
167  [7]=>
168  string(8) "orange20"
169}
170
171-- Testing sort() by supplying string array (case insensitive), 'flag' = SORT_STRING|SORT_FLAG_CASE --
172bool(true)
173array(8) {
174  [0]=>
175  string(6) "banana"
176  [1]=>
177  string(5) "lemon"
178  [2]=>
179  string(6) "orange"
180  [3]=>
181  string(6) "Orange"
182  [4]=>
183  string(7) "Orange1"
184  [5]=>
185  string(7) "orange2"
186  [6]=>
187  string(8) "orange20"
188  [7]=>
189  string(7) "Orange3"
190}
191
192-- Testing sort() by supplying string array (natural), 'flag' = SORT_NATURAL --
193bool(true)
194array(8) {
195  [0]=>
196  string(6) "Orange"
197  [1]=>
198  string(7) "Orange1"
199  [2]=>
200  string(7) "Orange3"
201  [3]=>
202  string(6) "banana"
203  [4]=>
204  string(5) "lemon"
205  [5]=>
206  string(6) "orange"
207  [6]=>
208  string(7) "orange2"
209  [7]=>
210  string(8) "orange20"
211}
212
213-- Testing sort() by supplying string array (natural, case insensitive), 'flag' = SORT_NATURAL|SORT_FLAG_CASE --
214bool(true)
215array(8) {
216  [0]=>
217  string(6) "banana"
218  [1]=>
219  string(5) "lemon"
220  [2]=>
221  string(6) "orange"
222  [3]=>
223  string(6) "Orange"
224  [4]=>
225  string(7) "Orange1"
226  [5]=>
227  string(7) "orange2"
228  [6]=>
229  string(7) "Orange3"
230  [7]=>
231  string(8) "orange20"
232}
233
234-- Testing sort() by supplying numeric array, 'flag' = SORT_NUMERIC --
235bool(true)
236array(4) {
237  [0]=>
238  int(22)
239  [1]=>
240  int(33)
241  [2]=>
242  int(100)
243  [3]=>
244  int(555)
245}
246Done
247