1--TEST--
2Test asort() function : usage variations - sorting arrays with/without keys, 'sort_flags' as default/SORT_REGULAR
3--FILE--
4<?php
5/* Prototype  : bool asort ( array &$array [, int $sort_flags] )
6 * Description: Sort an array and maintain index association.
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 asort() by providing arrays  with key values for $array argument with following flag values.
13 * 1.flag value as default
14 * 2.SORT_REGULAR - compare items normally
15 */
16
17echo "*** Testing asort() : usage variations ***\n";
18
19// list of arrays with/without key values
20$various_arrays = array (
21  array(5 => 55,  66, 22, 33, 11),
22  array ("a" => "orange",  "banana", "c" => "apple"),
23  array(1, 2, 3, 4, 5, 6),
24  array("first", 5 => "second", "third"),
25  array(1, 1, 8 => 1,  4 => 1, 19, 3 => 13),
26  array('bar' => 'baz', "foo" => 1),
27  array('a'=>1,'b'=>array('e'=>2,'f'=>3),'c'=>array('g'=>4),'d'=>5),
28);
29
30$count = 1;
31echo "\n-- Testing asort() by supplying various arrays with key values --\n";
32
33// loop through to test asort() with different arrays,
34// to test the new keys for the elements in the sorted array
35foreach ($various_arrays as $array) {
36  echo "\n-- Iteration $count --\n";
37
38  echo "- With default sort_flag -\n";
39  $temp_array = $array;
40  var_dump(asort($temp_array) );
41  var_dump($temp_array);
42
43  echo "- Sort_flag = SORT_REGULAR -\n";
44  $temp_array = $array;
45  var_dump(asort($temp_array, SORT_REGULAR) );
46  var_dump($temp_array);
47  $count++;
48}
49
50echo "Done\n";
51?>
52--EXPECTF--
53*** Testing asort() : usage variations ***
54
55-- Testing asort() by supplying various arrays with key values --
56
57-- Iteration 1 --
58- With default sort_flag -
59bool(true)
60array(5) {
61  [9]=>
62  int(11)
63  [7]=>
64  int(22)
65  [8]=>
66  int(33)
67  [5]=>
68  int(55)
69  [6]=>
70  int(66)
71}
72- Sort_flag = SORT_REGULAR -
73bool(true)
74array(5) {
75  [9]=>
76  int(11)
77  [7]=>
78  int(22)
79  [8]=>
80  int(33)
81  [5]=>
82  int(55)
83  [6]=>
84  int(66)
85}
86
87-- Iteration 2 --
88- With default sort_flag -
89bool(true)
90array(3) {
91  ["c"]=>
92  string(5) "apple"
93  [0]=>
94  string(6) "banana"
95  ["a"]=>
96  string(6) "orange"
97}
98- Sort_flag = SORT_REGULAR -
99bool(true)
100array(3) {
101  ["c"]=>
102  string(5) "apple"
103  [0]=>
104  string(6) "banana"
105  ["a"]=>
106  string(6) "orange"
107}
108
109-- Iteration 3 --
110- With default sort_flag -
111bool(true)
112array(6) {
113  [0]=>
114  int(1)
115  [1]=>
116  int(2)
117  [2]=>
118  int(3)
119  [3]=>
120  int(4)
121  [4]=>
122  int(5)
123  [5]=>
124  int(6)
125}
126- Sort_flag = SORT_REGULAR -
127bool(true)
128array(6) {
129  [0]=>
130  int(1)
131  [1]=>
132  int(2)
133  [2]=>
134  int(3)
135  [3]=>
136  int(4)
137  [4]=>
138  int(5)
139  [5]=>
140  int(6)
141}
142
143-- Iteration 4 --
144- With default sort_flag -
145bool(true)
146array(3) {
147  [0]=>
148  string(5) "first"
149  [5]=>
150  string(6) "second"
151  [6]=>
152  string(5) "third"
153}
154- Sort_flag = SORT_REGULAR -
155bool(true)
156array(3) {
157  [0]=>
158  string(5) "first"
159  [5]=>
160  string(6) "second"
161  [6]=>
162  string(5) "third"
163}
164
165-- Iteration 5 --
166- With default sort_flag -
167bool(true)
168array(6) {
169  [4]=>
170  int(1)
171  [0]=>
172  int(1)
173  [8]=>
174  int(1)
175  [1]=>
176  int(1)
177  [3]=>
178  int(13)
179  [9]=>
180  int(19)
181}
182- Sort_flag = SORT_REGULAR -
183bool(true)
184array(6) {
185  [4]=>
186  int(1)
187  [0]=>
188  int(1)
189  [8]=>
190  int(1)
191  [1]=>
192  int(1)
193  [3]=>
194  int(13)
195  [9]=>
196  int(19)
197}
198
199-- Iteration 6 --
200- With default sort_flag -
201bool(true)
202array(2) {
203  ["bar"]=>
204  string(3) "baz"
205  ["foo"]=>
206  int(1)
207}
208- Sort_flag = SORT_REGULAR -
209bool(true)
210array(2) {
211  ["bar"]=>
212  string(3) "baz"
213  ["foo"]=>
214  int(1)
215}
216
217-- Iteration 7 --
218- With default sort_flag -
219bool(true)
220array(4) {
221  ["a"]=>
222  int(1)
223  ["d"]=>
224  int(5)
225  ["c"]=>
226  array(1) {
227    ["g"]=>
228    int(4)
229  }
230  ["b"]=>
231  array(2) {
232    ["e"]=>
233    int(2)
234    ["f"]=>
235    int(3)
236  }
237}
238- Sort_flag = SORT_REGULAR -
239bool(true)
240array(4) {
241  ["a"]=>
242  int(1)
243  ["d"]=>
244  int(5)
245  ["c"]=>
246  array(1) {
247    ["g"]=>
248    int(4)
249  }
250  ["b"]=>
251  array(2) {
252    ["e"]=>
253    int(2)
254    ["f"]=>
255    int(3)
256  }
257}
258Done
259