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