Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_variation5.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_intersect() function : usage variations - assoc array with diff keys 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: * Testing the functionality of array_intersect() by passing different
12: * associative arrays having different possible keys to $arr1 argument.
13: * The $arr2 argument is a fixed array
14: */
15:
16: echo "*** Testing array_intersect() : assoc array with diff keys to \$arr1 argument ***\n";
17:
18: // get an unset variable
19: $unset_var = 10;
20: unset ($unset_var);
21:
22: // get a heredoc string
23: $heredoc = <<<EOT
24: Hello world
25: EOT;
26:
27: // different variations of associative arrays to be passed to $arr1 argument
28: $arrays = array (
29:
30: // empty array
31: /*1*/ array(),
32:
33: // arrays with integer keys
34: array(0 => "0"),
35: array(1 => "1"),
36: array(1 => "1", 2 => "2", 3 => "3", 4 => "4"),
37:
38: // arrays with float keys
39: /*5*/ array(2.3333 => "float"),
40: array(1.2 => "f1", 3.33 => "f2",
41: 4.89999922839999 => "f3",
42: 33333333.333333 => "f4"),
43:
44: // arrays with string keys
45: /*7*/ array('\tHello' => 111, 're\td' => "color",
46: '\v\fworld' => 2.2, 'pen\n' => 33),
47: array("\tHello" => 111, "re\td" => "color",
48: "\v\fworld" => 2.2, "pen\n" => 33),
49: array("hello", $heredoc => "string"), // heredoc
50:
51: // array with unset variable
52: /*10*/ array( @$unset_var => "hello"),
53:
54: // array with mixed keys
55: /*11*/ array('hello' => 1, "fruit" => 2.2,
56: 133 => "int", 444.432 => "float",
57: @$unset_var => "unset", $heredoc => "heredoc")
58: );
59:
60: // array to be passsed to $arr2 argument
61: $arr2 = array(1, "float", "f4", "hello", 2.2, 'color', "string", "pen\n", 11);
62:
63: // loop through each sub-array within $arrrays to check the behavior of array_intersect()
64: $iterator = 1;
65: foreach($arrays as $arr1) {
66: echo "-- Iterator $iterator --\n";
67:
68: // Calling array_intersect() with default arguments
69: var_dump( array_intersect($arr1, $arr2) );
70:
71: // Calling array_intersect() with more arguments.
72: // additional argument passed is the same as $arr1 argument
73: var_dump( array_intersect($arr1, $arr2, $arr1) );
74: $iterator++;
75: }
76:
77: echo "Done";
78: ?>
79: --EXPECTF--
80: *** Testing array_intersect() : assoc array with diff keys to $arr1 argument ***
81: -- Iterator 1 --
82: array(0) {
83: }
84: array(0) {
85: }
86: -- Iterator 2 --
87: array(0) {
88: }
89: array(0) {
90: }
91: -- Iterator 3 --
92: array(1) {
93: [1]=>
94: string(1) "1"
95: }
96: array(1) {
97: [1]=>
98: string(1) "1"
99: }
100: -- Iterator 4 --
101: array(1) {
102: [1]=>
103: string(1) "1"
104: }
105: array(1) {
106: [1]=>
107: string(1) "1"
108: }
109: -- Iterator 5 --
110: array(1) {
111: [2]=>
112: string(5) "float"
113: }
114: array(1) {
115: [2]=>
116: string(5) "float"
117: }
118: -- Iterator 6 --
119: array(1) {
120: [33333333]=>
121: string(2) "f4"
122: }
123: array(1) {
124: [33333333]=>
125: string(2) "f4"
126: }
127: -- Iterator 7 --
128: array(2) {
129: ["re\td"]=>
130: string(5) "color"
131: ["\v\fworld"]=>
132: float(2.2)
133: }
134: array(2) {
135: ["re\td"]=>
136: string(5) "color"
137: ["\v\fworld"]=>
138: float(2.2)
139: }
140: -- Iterator 8 --
141: array(2) {
142: ["re d"]=>
143: string(5) "color"
144: ["world"]=>
145: float(2.2)
146: }
147: array(2) {
148: ["re d"]=>
149: string(5) "color"
150: ["world"]=>
151: float(2.2)
152: }
153: -- Iterator 9 --
154: array(2) {
155: [0]=>
156: string(5) "hello"
157: ["Hello world"]=>
158: string(6) "string"
159: }
160: array(2) {
161: [0]=>
162: string(5) "hello"
163: ["Hello world"]=>
164: string(6) "string"
165: }
166: -- Iterator 10 --
167: array(1) {
168: [""]=>
169: string(5) "hello"
170: }
171: array(1) {
172: [""]=>
173: string(5) "hello"
174: }
175: -- Iterator 11 --
176: array(3) {
177: ["hello"]=>
178: int(1)
179: ["fruit"]=>
180: float(2.2)
181: [444]=>
182: string(5) "float"
183: }
184: array(3) {
185: ["hello"]=>
186: int(1)
187: ["fruit"]=>
188: float(2.2)
189: [444]=>
190: string(5) "float"
191: }
192: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>