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