Annotation of embedaddon/php/ext/standard/tests/array/usort_variation6.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test usort() function : usage variations - multi-dimensional arrays
3: --FILE--
4: <?php
5: /* Prototype : bool usort(array $array_arg, string $cmp_function)
6: * Description: Sort an array by values using a user-defined comparison function
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Pass a multi-dimensional array as $array_arg argument to usort()
12: * to test how array is re-ordered
13: */
14:
15: echo "*** Testing usort() : usage variation ***\n";
16:
17: function cmp_function($value1, $value2)
18: {
19: if($value1 == $value2) {
20: return 0;
21: }
22: else if($value1 > $value2) {
23: return 1;
24: }
25: else {
26: return -1;
27: }
28: }
29:
30: $array_args = array(
31: 0 => array(2, 10, -1),
32: 1 => array(100),
33: 2 => array(),
34: 3 => array(0),
35: 4 => array(-1),
36: 5 => array(-9, 34, 54, 0, 20),
37: 6 => array(''),
38: 7 => array("apple", "Apple", "APPLE", "aPPle", "aPpLe")
39: );
40:
41: $temp_array = $array_args;
42:
43: echo "\n-- Pass usort() a two-dimensional array --\n";
44: // sorting array_arg as whole array
45: var_dump( usort($temp_array, 'cmp_function') );
46:
47: echo "-- Array after call to usort() --\n";
48: var_dump($temp_array);
49:
50: echo "\n-- Pass usort() a sub-array --\n";
51: var_dump( usort($array_args[5], 'cmp_function') );
52:
53: echo "-- Array after call to usort() --\n";
54: var_dump($array_args[5]);
55: ?>
56: ===DONE===
57: --EXPECTF--
58: *** Testing usort() : usage variation ***
59:
60: -- Pass usort() a two-dimensional array --
61: bool(true)
62: -- Array after call to usort() --
63: array(8) {
64: [0]=>
65: array(0) {
66: }
67: [1]=>
68: array(1) {
69: [0]=>
70: int(-1)
71: }
72: [2]=>
73: array(1) {
74: [0]=>
75: string(0) ""
76: }
77: [3]=>
78: array(1) {
79: [0]=>
80: int(0)
81: }
82: [4]=>
83: array(1) {
84: [0]=>
85: int(100)
86: }
87: [5]=>
88: array(3) {
89: [0]=>
90: int(2)
91: [1]=>
92: int(10)
93: [2]=>
94: int(-1)
95: }
96: [6]=>
97: array(5) {
98: [0]=>
99: int(-9)
100: [1]=>
101: int(34)
102: [2]=>
103: int(54)
104: [3]=>
105: int(0)
106: [4]=>
107: int(20)
108: }
109: [7]=>
110: array(5) {
111: [0]=>
112: string(5) "apple"
113: [1]=>
114: string(5) "Apple"
115: [2]=>
116: string(5) "APPLE"
117: [3]=>
118: string(5) "aPPle"
119: [4]=>
120: string(5) "aPpLe"
121: }
122: }
123:
124: -- Pass usort() a sub-array --
125: bool(true)
126: -- Array after call to usort() --
127: array(5) {
128: [0]=>
129: int(-9)
130: [1]=>
131: int(0)
132: [2]=>
133: int(20)
134: [3]=>
135: int(34)
136: [4]=>
137: int(54)
138: }
139: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>