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