1--TEST--
2Test ksort() function : basic functionality
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  array of integer/string values to check the basic functionality with following flag values :
12 *  1.flag value as defualt
13 *  2.SORT_REGULAR - compare items normally
14 *  3.SORT_NUMERIC - compare items numerically
15 *  4.SORT_STRING - compare items as strings
16*/
17
18echo "*** Testing ksort() : basic functionality ***\n";
19
20// an array containing unsorted string values with indices
21$unsorted_strings =   array( "lemon" => "l", "orange" => "o", "banana" => "b" );
22// an array containing unsorted numeric values with indices
23$unsorted_numerics =  array( 100 => 4, 33 => 3, 555 => 2, 22 => 1 );
24
25echo "\n-- Testing ksort() by supplying string array, 'flag' value is defualt --\n";
26$temp_array = $unsorted_strings;
27var_dump( ksort($temp_array) ); // expecting : bool(true)
28var_dump( $temp_array);
29
30echo "\n-- Testing ksort() by supplying numeric array, 'flag' value is defualt --\n";
31$temp_array = $unsorted_numerics;
32var_dump( ksort($temp_array) ); // expecting : bool(true)
33var_dump( $temp_array);
34
35echo "\n-- Testing ksort() by supplying string array, 'flag' = SORT_REGULAR --\n";
36$temp_array = $unsorted_strings;
37var_dump( ksort($temp_array, SORT_REGULAR) ); // expecting : bool(true)
38var_dump( $temp_array);
39
40echo "\n-- Testing ksort() by supplying numeric array, 'flag' = SORT_REGULAR --\n";
41$temp_array = $unsorted_numerics;
42var_dump( ksort($temp_array, SORT_REGULAR) ); // expecting : bool(true)
43var_dump( $temp_array);
44
45echo "\n-- Testing ksort() by supplying string array, 'flag' = SORT_STRING --\n";
46$temp_array = $unsorted_strings;
47var_dump( ksort($temp_array, SORT_STRING) ); // expecting : bool(true)
48var_dump( $temp_array);
49
50echo "\n-- Testing ksort() by supplying numeric array, 'flag' = SORT_NUMERIC --\n";
51$temp_array = $unsorted_numerics;
52var_dump( ksort($temp_array, SORT_NUMERIC) ); // expecting : bool(true)
53var_dump( $temp_array);
54
55echo "Done\n";
56?>
57--EXPECTF--
58*** Testing ksort() : basic functionality ***
59
60-- Testing ksort() by supplying string array, 'flag' value is defualt --
61bool(true)
62array(3) {
63  ["banana"]=>
64  string(1) "b"
65  ["lemon"]=>
66  string(1) "l"
67  ["orange"]=>
68  string(1) "o"
69}
70
71-- Testing ksort() by supplying numeric array, 'flag' value is defualt --
72bool(true)
73array(4) {
74  [22]=>
75  int(1)
76  [33]=>
77  int(3)
78  [100]=>
79  int(4)
80  [555]=>
81  int(2)
82}
83
84-- Testing ksort() by supplying string array, 'flag' = SORT_REGULAR --
85bool(true)
86array(3) {
87  ["banana"]=>
88  string(1) "b"
89  ["lemon"]=>
90  string(1) "l"
91  ["orange"]=>
92  string(1) "o"
93}
94
95-- Testing ksort() by supplying numeric array, 'flag' = SORT_REGULAR --
96bool(true)
97array(4) {
98  [22]=>
99  int(1)
100  [33]=>
101  int(3)
102  [100]=>
103  int(4)
104  [555]=>
105  int(2)
106}
107
108-- Testing ksort() by supplying string array, 'flag' = SORT_STRING --
109bool(true)
110array(3) {
111  ["banana"]=>
112  string(1) "b"
113  ["lemon"]=>
114  string(1) "l"
115  ["orange"]=>
116  string(1) "o"
117}
118
119-- Testing ksort() by supplying numeric array, 'flag' = SORT_NUMERIC --
120bool(true)
121array(4) {
122  [22]=>
123  int(1)
124  [33]=>
125  int(3)
126  [100]=>
127  int(4)
128  [555]=>
129  int(2)
130}
131Done
132