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