1--TEST--
2Test arsort() function : usage variations - sort array with diff. sub arrays, 'sort_flags' as default/SORT_REGULAR
3--FILE--
4<?php
5/* Prototype  : bool arsort ( array &$array [, int $sort_flags] )
6 * Description: Sort an array and maintain index association.
7                Elements will be arranged from highest to lowest when this function has completed.
8 * Source code: ext/standard/array.c
9*/
10
11/*
12 * testing arsort() by providing arrays contains sub arrays for $array argument with flowing flag values
13 * flag value as default
14 * SORT_REGULAR - compare items normally
15 * Note: arrays are sorted based on total count of elements inside it, when all the elements are arrays
16*/
17
18echo "*** Testing arsort() : usage variations ***\n";
19
20// array of arrays
21$various_arrays = array (
22  // null array
23  "array[0]" => array(),
24
25  // array contains null sub array
26  "array[1]" => array( "sub_array[1][0]" => array() ),
27
28  // array of arrays along with some values
29  "array[2]" => array("data[2,0]" => 44, "data[2,1]" => 11, "sub_array[2][0] " => array(64,61) ),
30
31  // array contains sub arrays
32  "array[3]" => array ( "sub_array[3][0]" => array(33,-5,6), "sub_array[3][1]" => array(11),
33                        "sub_array[3][2]" => array(22,-55), "sub_array[3][3]" => array() )
34);
35
36
37$count = 1;
38echo "\n-- Testing arsort() by supplying various arrays containing sub arrays --\n";
39
40// loop through to test arsort() with different arrays
41foreach ($various_arrays as $array) {
42
43  echo "\n-- Iteration $count --\n";
44  // testing arsort() function by supplying different arrays, flag value is default
45  echo "- With default sort_flag -\n";
46  $temp_array = $array;
47  var_dump(arsort($temp_array) );
48  var_dump($temp_array);
49
50  // testing arsort() function by supplying different arrays, flag value = SORT_REGULAR
51  echo "- Sort_flag = SORT_REGULAR -\n";
52  $temp_array = $array;
53  var_dump(arsort($temp_array, SORT_REGULAR) );
54  var_dump($temp_array);
55  $count++;
56}
57
58echo "Done\n";
59?>
60--EXPECTF--
61*** Testing arsort() : usage variations ***
62
63-- Testing arsort() by supplying various arrays containing sub arrays --
64
65-- Iteration 1 --
66- With default sort_flag -
67bool(true)
68array(0) {
69}
70- Sort_flag = SORT_REGULAR -
71bool(true)
72array(0) {
73}
74
75-- Iteration 2 --
76- With default sort_flag -
77bool(true)
78array(1) {
79  ["sub_array[1][0]"]=>
80  array(0) {
81  }
82}
83- Sort_flag = SORT_REGULAR -
84bool(true)
85array(1) {
86  ["sub_array[1][0]"]=>
87  array(0) {
88  }
89}
90
91-- Iteration 3 --
92- With default sort_flag -
93bool(true)
94array(3) {
95  ["sub_array[2][0] "]=>
96  array(2) {
97    [0]=>
98    int(64)
99    [1]=>
100    int(61)
101  }
102  ["data[2,0]"]=>
103  int(44)
104  ["data[2,1]"]=>
105  int(11)
106}
107- Sort_flag = SORT_REGULAR -
108bool(true)
109array(3) {
110  ["sub_array[2][0] "]=>
111  array(2) {
112    [0]=>
113    int(64)
114    [1]=>
115    int(61)
116  }
117  ["data[2,0]"]=>
118  int(44)
119  ["data[2,1]"]=>
120  int(11)
121}
122
123-- Iteration 4 --
124- With default sort_flag -
125bool(true)
126array(4) {
127  ["sub_array[3][0]"]=>
128  array(3) {
129    [0]=>
130    int(33)
131    [1]=>
132    int(-5)
133    [2]=>
134    int(6)
135  }
136  ["sub_array[3][2]"]=>
137  array(2) {
138    [0]=>
139    int(22)
140    [1]=>
141    int(-55)
142  }
143  ["sub_array[3][1]"]=>
144  array(1) {
145    [0]=>
146    int(11)
147  }
148  ["sub_array[3][3]"]=>
149  array(0) {
150  }
151}
152- Sort_flag = SORT_REGULAR -
153bool(true)
154array(4) {
155  ["sub_array[3][0]"]=>
156  array(3) {
157    [0]=>
158    int(33)
159    [1]=>
160    int(-5)
161    [2]=>
162    int(6)
163  }
164  ["sub_array[3][2]"]=>
165  array(2) {
166    [0]=>
167    int(22)
168    [1]=>
169    int(-55)
170  }
171  ["sub_array[3][1]"]=>
172  array(1) {
173    [0]=>
174    int(11)
175  }
176  ["sub_array[3][3]"]=>
177  array(0) {
178  }
179}
180Done
181