Annotation of embedaddon/php/ext/standard/tests/array/array_filter_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_filter() function : usage variations - Different types of array for 'input' argument
3: --FILE--
4: <?php
5: /* Prototype : array array_filter(array $input [, callback $callback])
6: * Description: Filters elements from the array via the callback.
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Passing different types of array as 'input' argument.
12: */
13:
14: // callback function returning always false
15: function always_false($input)
16: {
17: return false;
18: }
19:
20: // callback function returning always true
21: function always_true($input)
22: {
23: return true;
24: }
25:
26: echo "*** Testing array_filter() : usage variations - different types of array for 'input' argument***\n";
27:
28: // different types of 'input' array
29: $input_values = array(
30: array(0, 1, 2, -1, 034, 0X4A), // integer values
31: array(0.0, 1.2, 1.2e3, 1.2e-3), // float values
32: array('value1', "value2", '', " ", ""), // string values
33: array(true, false, TRUE, FALSE), // bool values
34: array(null, NULL), // null values
35: array(1 => 'one', 'zero' => 0, -2 => "value"), //associative array
36: array("one" => 1, null => 'null', 5.2 => "float", true => 1, "" => 'empty'), // associative array with different keys
37: array(1 => 'one', 2, "key" => 'value') // combinition of associative and non-associative array
38:
39: );
40:
41: // loop through each element of 'input' with default callback
42: for($count = 0; $count < count($input_values); $count++)
43: {
44: echo "-- Iteration ".($count + 1). " --\n";
45: var_dump( array_filter($input_values[$count]) );
46: var_dump( array_filter($input_values[$count], 'always_true') );
47: var_dump( array_filter($input_values[$count], 'always_false') );
48: }
49:
50: echo "Done"
51: ?>
52: --EXPECTF--
53: *** Testing array_filter() : usage variations - different types of array for 'input' argument***
54: -- Iteration 1 --
55: array(5) {
56: [1]=>
57: int(1)
58: [2]=>
59: int(2)
60: [3]=>
61: int(-1)
62: [4]=>
63: int(28)
64: [5]=>
65: int(74)
66: }
67: array(6) {
68: [0]=>
69: int(0)
70: [1]=>
71: int(1)
72: [2]=>
73: int(2)
74: [3]=>
75: int(-1)
76: [4]=>
77: int(28)
78: [5]=>
79: int(74)
80: }
81: array(0) {
82: }
83: -- Iteration 2 --
84: array(3) {
85: [1]=>
86: float(1.2)
87: [2]=>
88: float(1200)
89: [3]=>
90: float(0.0012)
91: }
92: array(4) {
93: [0]=>
94: float(0)
95: [1]=>
96: float(1.2)
97: [2]=>
98: float(1200)
99: [3]=>
100: float(0.0012)
101: }
102: array(0) {
103: }
104: -- Iteration 3 --
105: array(3) {
106: [0]=>
107: string(6) "value1"
108: [1]=>
109: string(6) "value2"
110: [3]=>
111: string(1) " "
112: }
113: array(5) {
114: [0]=>
115: string(6) "value1"
116: [1]=>
117: string(6) "value2"
118: [2]=>
119: string(0) ""
120: [3]=>
121: string(1) " "
122: [4]=>
123: string(0) ""
124: }
125: array(0) {
126: }
127: -- Iteration 4 --
128: array(2) {
129: [0]=>
130: bool(true)
131: [2]=>
132: bool(true)
133: }
134: array(4) {
135: [0]=>
136: bool(true)
137: [1]=>
138: bool(false)
139: [2]=>
140: bool(true)
141: [3]=>
142: bool(false)
143: }
144: array(0) {
145: }
146: -- Iteration 5 --
147: array(0) {
148: }
149: array(2) {
150: [0]=>
151: NULL
152: [1]=>
153: NULL
154: }
155: array(0) {
156: }
157: -- Iteration 6 --
158: array(2) {
159: [1]=>
160: string(3) "one"
161: [-2]=>
162: string(5) "value"
163: }
164: array(3) {
165: [1]=>
166: string(3) "one"
167: ["zero"]=>
168: int(0)
169: [-2]=>
170: string(5) "value"
171: }
172: array(0) {
173: }
174: -- Iteration 7 --
175: array(4) {
176: ["one"]=>
177: int(1)
178: [""]=>
179: string(5) "empty"
180: [5]=>
181: string(5) "float"
182: [1]=>
183: int(1)
184: }
185: array(4) {
186: ["one"]=>
187: int(1)
188: [""]=>
189: string(5) "empty"
190: [5]=>
191: string(5) "float"
192: [1]=>
193: int(1)
194: }
195: array(0) {
196: }
197: -- Iteration 8 --
198: array(3) {
199: [1]=>
200: string(3) "one"
201: [2]=>
202: int(2)
203: ["key"]=>
204: string(5) "value"
205: }
206: array(3) {
207: [1]=>
208: string(3) "one"
209: [2]=>
210: int(2)
211: ["key"]=>
212: string(5) "value"
213: }
214: array(0) {
215: }
216: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>