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