Annotation of embedaddon/php/ext/standard/tests/array/array_unique_variation4.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_unique() function : usage variations - associative array with different values
3: --FILE--
4: <?php
5: /* Prototype : array array_unique(array $input)
6: * Description: Removes duplicate values from array
7: * Source code: ext/standard/array.c
8: */
9:
10: /*
11: * Testing the functionality of array_unique() by passing different
12: * associative arrays having different values to $input argument.
13: */
14:
15: echo "*** Testing array_unique() : assoc. array with diff. values to \$input argument ***\n";
16:
17: // get an unset variable
18: $unset_var = 10;
19: unset ($unset_var);
20:
21: // get a resource variable
22: $fp = fopen(__FILE__, "r");
23:
24: // get a class
25: class classA
26: {
27: public function __toString() {
28: return "Class A object";
29: }
30: }
31:
32: // get a heredoc string
33: $heredoc = <<<EOT
34: Hello world
35: EOT;
36:
37: // associative arrays with different values
38: $inputs = array (
39: // arrays with integer values
40: /*1*/ array('0' => 0, '1' => 0),
41: array("one" => 1, 'two' => 2, "three" => 1, 4 => 1),
42:
43: // arrays with float values
44: /*3*/ array("float1" => 2.3333, "float2" => 2.3333),
45: array("f1" => 1.2, 'f2' => 3.33, 3 => 4.89999922839999, 'f4' => 1.2),
46:
47: // arrays with string values
48: /*5*/ array(111 => "\tHello", "red" => "col\tor", 2 => "\v\fworld", 3.3 => "\tHello"),
49: array(111 => '\tHello', "red" => 'col\tor', 2 => '\v\fworld', 3.3 => '\tHello'),
50: array(1 => "hello", "heredoc" => $heredoc, $heredoc),
51:
52: // array with object, unset variable and resource variable
53: /*8*/ array(11 => new classA(), "unset" => @$unset_var, "resource" => $fp, new classA(), $fp),
54: );
55:
56: // loop through each sub-array of $inputs to check the behavior of array_unique()
57: $iterator = 1;
58: foreach($inputs as $input) {
59: echo "-- Iteration $iterator --\n";
60: var_dump( array_unique($input) );
61: $iterator++;
62: }
63:
64: fclose($fp);
65:
66: echo "Done";
67: ?>
68: --EXPECTF--
69: *** Testing array_unique() : assoc. array with diff. values to $input argument ***
70: -- Iteration 1 --
71: array(1) {
72: [0]=>
73: int(0)
74: }
75: -- Iteration 2 --
76: array(2) {
77: ["one"]=>
78: int(1)
79: ["two"]=>
80: int(2)
81: }
82: -- Iteration 3 --
83: array(1) {
84: ["float1"]=>
85: float(2.3333)
86: }
87: -- Iteration 4 --
88: array(3) {
89: ["f1"]=>
90: float(1.2)
91: ["f2"]=>
92: float(3.33)
93: [3]=>
94: float(4.8999992284)
95: }
96: -- Iteration 5 --
97: array(3) {
98: [111]=>
99: string(6) " Hello"
100: ["red"]=>
101: string(6) "col or"
102: [2]=>
103: string(7) "world"
104: }
105: -- Iteration 6 --
106: array(3) {
107: [111]=>
108: string(7) "\tHello"
109: ["red"]=>
110: string(7) "col\tor"
111: [2]=>
112: string(9) "\v\fworld"
113: }
114: -- Iteration 7 --
115: array(2) {
116: [1]=>
117: string(5) "hello"
118: ["heredoc"]=>
119: string(11) "Hello world"
120: }
121: -- Iteration 8 --
122: array(3) {
123: [11]=>
124: object(classA)#%d (0) {
125: }
126: ["unset"]=>
127: NULL
128: ["resource"]=>
129: resource(%d) of type (stream)
130: }
131: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>