Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_variation4.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: Test array_intersect() function : usage variations - different arrays for 'arr2' argument
3: --FILE--
4: <?php
5: /* Prototype : array array_intersect(array $arr1, array $arr2 [, array $...])
6: * Description: Returns the entries of arr1 that have values which are present in all the other arguments
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Passing different types of arrays to $arr2 argument and testing whether
12: * array_intersect() behaves in expected way with the other arguments passed to the function.
13: * The $arr1 argument is a fixed array.
14: */
15:
16: echo "*** Testing array_intersect() : Passing different types of arrays to \$arr2 argument ***\n";
17:
18: /* Different heredoc strings passed as argument to $arr2 */
19: // heredoc with blank line
20: $blank_line = <<<EOT
21:
22:
23: EOT;
24:
25: // heredoc with multiline string
26: $multiline_string = <<<EOT
27: hello world
28: The big brown fox jumped over;
29: the lazy dog
30: This is a double quoted string
31: EOT;
32:
1.1.1.2 ! misho 33: // heredoc with different whitespaces
1.1 misho 34: $diff_whitespaces = <<<EOT
35: hello\r world\t
36: 1111\t\t != 2222\v\v
37: heredoc\ndouble quoted string. with\vdifferent\fwhite\vspaces
38: EOT;
39:
40: // heredoc with quoted strings and numeric values
41: $numeric_string = <<<EOT
42: 11 < 12. 123 >22
43: 'single quoted string'
44: "double quoted string"
45: 2222 != 1111.\t 0000 = 0000\n
46: EOT;
47:
48: // array to be passsed to $arr1 argument
49: $arr1 = array (
50: 1, 1.1, "hello", "one", NULL, 2,
51: 'world', true, false, false => 5, 'aaaa\r', "aaaa\r",
52: $numeric_string, $diff_whitespaces,
53: "one" => "ten", 4 => "four", "two" => 2, 2 => "two",
54: '', null => "null", '' => 'emptys'
55: );
56:
57: // arrays to be passed to $arr2 argument
58: $arrays = array (
59: /*1*/ array(1, 2), // array with default keys and numeric values
60: array(1.1, 2.2), // array with default keys & float values
61: array(false,true), // array with default keys and boolean values
62: array(), // empty array
63: /*5*/ array(NULL), // array with NULL
64: array("a\v\f","aaaa\r","b","b\tbbb","c","\[\]\!\@\#\$\%\^\&\*\(\)\{\}"), // array with double quoted strings
65: array('a\v\f','aaaa\r','b','b\tbbb','c','\[\]\!\@\#\$\%\^\&\*\(\)\{\}'), // array with single quoted strings
66: array($blank_line, $multiline_string, $diff_whitespaces, $numeric_string), // array with heredocs
67:
68: // associative arrays
69: /*9*/ array(1 => "one", 2 => "two", 3 => "three"), // explicit numeric keys, string values
70: array("one" => 1, "two" => 2, "three" => 3 ), // string keys & numeric values
71: array( 1 => 10, 2 => 20, 4 => 40, 3 => 30), // explicit numeric keys and numeric values
72: array( "one" => "ten", "two" => "twenty", "three" => "thirty"), // string key/value
73: array("one" => 1, 2 => "two", 4 => "four"), //mixed
74:
75: // associative array, containing null/empty/boolean values as key/value
76: /*14*/ array(NULL => "NULL", null => "null", "NULL" => NULL, "null" => null),
77: array(true => "true", false => "false", "false" => false, "true" => true),
78: array("" => "emptyd", '' => 'emptys', "emptyd" => "", 'emptys' => ''),
79: array(1 => '', 2 => "", 3 => NULL, 4 => null, 5 => false, 6 => true),
80: array('' => 1, "" => 2, NULL => 3, null => 4, false => 5, true => 6),
81:
82: // array with repetative keys
83: /*19*/ array("One" => 1, "two" => 2, "One" => 10, "two" => 20, "three" => 3)
84: );
85:
86: // loop through each sub-array within $arrrays to check the behavior of array_intersect()
87: $iterator = 1;
88: foreach($arrays as $arr2) {
89: echo "-- Iteration $iterator --\n";
90:
91: // Calling array_intersect() with default arguments
92: var_dump( array_intersect($arr1, $arr2) );
93:
94: // Calling array_intersect() with more arguments
95: // additional argument passed is the same as $arr1 argument
96: var_dump( array_intersect($arr1, $arr2, $arr1) );
97: $iterator++;
98: }
99:
100: echo "Done";
101: ?>
102: --EXPECTF--
103: *** Testing array_intersect() : Passing different types of arrays to $arr2 argument ***
104: -- Iteration 1 --
105: array(3) {
106: [5]=>
107: int(2)
108: [7]=>
109: bool(true)
110: ["two"]=>
111: int(2)
112: }
113: array(3) {
114: [5]=>
115: int(2)
116: [7]=>
117: bool(true)
118: ["two"]=>
119: int(2)
120: }
121: -- Iteration 2 --
122: array(1) {
123: [1]=>
124: float(1.1)
125: }
126: array(1) {
127: [1]=>
128: float(1.1)
129: }
130: -- Iteration 3 --
131: array(3) {
132: [7]=>
133: bool(true)
134: [8]=>
135: bool(false)
136: [13]=>
137: string(0) ""
138: }
139: array(3) {
140: [7]=>
141: bool(true)
142: [8]=>
143: bool(false)
144: [13]=>
145: string(0) ""
146: }
147: -- Iteration 4 --
148: array(0) {
149: }
150: array(0) {
151: }
152: -- Iteration 5 --
153: array(2) {
154: [8]=>
155: bool(false)
156: [13]=>
157: string(0) ""
158: }
159: array(2) {
160: [8]=>
161: bool(false)
162: [13]=>
163: string(0) ""
164: }
165: -- Iteration 6 --
166: array(1) {
167: [10]=>
168: string(5) "aaaa
"
169: }
170: array(1) {
171: [10]=>
172: string(5) "aaaa
"
173: }
174: -- Iteration 7 --
175: array(1) {
176: [9]=>
177: string(6) "aaaa\r"
178: }
179: array(1) {
180: [9]=>
181: string(6) "aaaa\r"
182: }
183: -- Iteration 8 --
184: array(2) {
185: [11]=>
186: string(90) "11 < 12. 123 >22
187: 'single quoted string'
188: "double quoted string"
189: 2222 != 1111. 0000 = 0000
190: "
191: [12]=>
192: string(88) "hello
world
193: 1111 != 2222
194: heredoc
195: double quoted string. withdifferentwhitespaces"
196: }
197: array(2) {
198: [11]=>
199: string(90) "11 < 12. 123 >22
200: 'single quoted string'
201: "double quoted string"
202: 2222 != 1111. 0000 = 0000
203: "
204: [12]=>
205: string(88) "hello
world
206: 1111 != 2222
207: heredoc
208: double quoted string. withdifferentwhitespaces"
209: }
210: -- Iteration 9 --
211: array(2) {
212: [2]=>
213: string(3) "two"
214: [3]=>
215: string(3) "one"
216: }
217: array(2) {
218: [2]=>
219: string(3) "two"
220: [3]=>
221: string(3) "one"
222: }
223: -- Iteration 10 --
224: array(3) {
225: [5]=>
226: int(2)
227: [7]=>
228: bool(true)
229: ["two"]=>
230: int(2)
231: }
232: array(3) {
233: [5]=>
234: int(2)
235: [7]=>
236: bool(true)
237: ["two"]=>
238: int(2)
239: }
240: -- Iteration 11 --
241: array(0) {
242: }
243: array(0) {
244: }
245: -- Iteration 12 --
246: array(1) {
247: ["one"]=>
248: string(3) "ten"
249: }
250: array(1) {
251: ["one"]=>
252: string(3) "ten"
253: }
254: -- Iteration 13 --
255: array(3) {
256: [2]=>
257: string(3) "two"
258: [4]=>
259: string(4) "four"
260: [7]=>
261: bool(true)
262: }
263: array(3) {
264: [2]=>
265: string(3) "two"
266: [4]=>
267: string(4) "four"
268: [7]=>
269: bool(true)
270: }
271: -- Iteration 14 --
272: array(2) {
273: [8]=>
274: bool(false)
275: [13]=>
276: string(0) ""
277: }
278: array(2) {
279: [8]=>
280: bool(false)
281: [13]=>
282: string(0) ""
283: }
284: -- Iteration 15 --
285: array(3) {
286: [7]=>
287: bool(true)
288: [8]=>
289: bool(false)
290: [13]=>
291: string(0) ""
292: }
293: array(3) {
294: [7]=>
295: bool(true)
296: [8]=>
297: bool(false)
298: [13]=>
299: string(0) ""
300: }
301: -- Iteration 16 --
302: array(3) {
303: [8]=>
304: bool(false)
305: [13]=>
306: string(0) ""
307: [""]=>
308: string(6) "emptys"
309: }
310: array(3) {
311: [8]=>
312: bool(false)
313: [13]=>
314: string(0) ""
315: [""]=>
316: string(6) "emptys"
317: }
318: -- Iteration 17 --
319: array(3) {
320: [7]=>
321: bool(true)
322: [8]=>
323: bool(false)
324: [13]=>
325: string(0) ""
326: }
327: array(3) {
328: [7]=>
329: bool(true)
330: [8]=>
331: bool(false)
332: [13]=>
333: string(0) ""
334: }
335: -- Iteration 18 --
336: array(1) {
337: [0]=>
338: int(5)
339: }
340: array(1) {
341: [0]=>
342: int(5)
343: }
344: -- Iteration 19 --
345: array(0) {
346: }
347: array(0) {
348: }
349: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>