Annotation of embedaddon/php/ext/standard/tests/array/uasort_variation5.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test uasort() function : usage variations - sort diff. strings
3: --FILE--
4: <?php
5: /* Prototype : bool uasort(array $array_arg, string $cmp_function)
6: * Description: Sort an array with a user-defined comparison function and maintain index association
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * sorting different strings:
12: * single quoted, double quoted and heredoc strings
13: */
14:
15: // comparison function
16: /* Prototype : int cmp_function(mixed $value1, mixed $value2)
17: * Parameters : $value1 and $value2 - values to be compared
18: * Return value : 0 - if both values are same
19: * 1 - if value1 is greater than value2
20: * -1 - if value1 is less than value2
21: * Description : compares value1 and value2
22: */
23: function cmp_function($value1, $value2)
24: {
25: if($value1 == $value2) {
26: return 0;
27: }
28: else if($value1 > $value2) {
29: return 1;
30: }
31: else {
32: return -1;
33: }
34: }
35:
36: // Different heredoc strings to be sorted
37: $empty_heredoc =<<<EOT
38: EOT;
39:
40: $simple_heredoc1 =<<<EOT
41: Heredoc
42: EOT;
43:
44: $simple_heredoc2 =<<<EOT
45: HEREDOC
46: EOT;
47:
48: $multiline_heredoc =<<<EOT
49: heredoc string\twith!@# and 123
50: Test this!!!
51: EOT;
52:
53:
54: echo "*** Testing uasort() : different string arrays as 'array_arg' ***\n";
55:
56: // Single quoted strings
57: $single_quoted_values = array(
58: 0 => ' ', 1 => 'test', 3 => 'Hello', 4 => 'HELLO',
59: 5 => '', 6 => '\t', 7 => '0', 8 => '123Hello', 9 => '\'', 10 => '@#$%'
60: );
61: echo "-- Sorting Single Quoted String values --\n";
62: var_dump( uasort($single_quoted_values, 'cmp_function') ); // expecting: bool(true)
63: var_dump($single_quoted_values);
64:
65: // Double quoted strings
66: $double_quoted_values = array(
67: 0 => " ", 1 => "test", 3 => "Hello", 4 => "HELLO",
68: 5 => "", 6 => "\t", 7 => "0", 8 => "123Hello", 9 => "\"", 10 => "@#$%"
69: );
70: echo "-- Sorting Double Quoted String values --\n";
71: var_dump( uasort($double_quoted_values, 'cmp_function') ); // expecting: bool(true)
72: var_dump($double_quoted_values);
73:
74: // Heredoc strings
75: $heredoc_values = array(0 => $empty_heredoc, 1 => $simple_heredoc1, 2 => $simple_heredoc2, 3 => $multiline_heredoc);
76: echo "-- Sorting Heredoc String values --\n";
77: var_dump( uasort($heredoc_values, 'cmp_function') ); // expecting: bool(true)
78: var_dump($heredoc_values);
79:
80: echo "Done"
81: ?>
82: --EXPECTF--
83: *** Testing uasort() : different string arrays as 'array_arg' ***
84: -- Sorting Single Quoted String values --
85: bool(true)
86: array(10) {
87: [5]=>
88: string(0) ""
89: [0]=>
90: string(1) " "
91: [9]=>
92: string(1) "'"
93: [7]=>
94: string(1) "0"
95: [8]=>
96: string(8) "123Hello"
97: [10]=>
98: string(4) "@#$%"
99: [4]=>
100: string(5) "HELLO"
101: [3]=>
102: string(5) "Hello"
103: [6]=>
104: string(2) "\t"
105: [1]=>
106: string(4) "test"
107: }
108: -- Sorting Double Quoted String values --
109: bool(true)
110: array(10) {
111: [5]=>
112: string(0) ""
113: [6]=>
114: string(1) " "
115: [0]=>
116: string(1) " "
117: [9]=>
118: string(1) """
119: [7]=>
120: string(1) "0"
121: [8]=>
122: string(8) "123Hello"
123: [10]=>
124: string(4) "@#$%"
125: [4]=>
126: string(5) "HELLO"
127: [3]=>
128: string(5) "Hello"
129: [1]=>
130: string(4) "test"
131: }
132: -- Sorting Heredoc String values --
133: bool(true)
134: array(4) {
135: [0]=>
136: string(0) ""
137: [2]=>
138: string(7) "HEREDOC"
139: [1]=>
140: string(7) "Heredoc"
141: [3]=>
142: string(4%d) "heredoc string with!@# and 123
143: Test this!!!"
144: }
145: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>