--TEST-- Test array_unique() function : usage variations - associative array with different keys --FILE-- "0", 1 => "0"), array(1 => "1", 2 => "2", 3 => 1, 4 => "4"), // arrays with float keys /*3*/ array(2.3333 => "float", 44.44 => "float"), array(1.2 => "f1", 3.33 => "f2", 4.89999922839999 => "f1", 3333333.333333 => "f4"), // arrays with string keys /*5*/ array('\tHello' => 111, 're\td' => "color", '\v\fworld' => 2.2, 'pen\n' => 111), array("\tHello" => 111, "re\td" => "color", "\v\fworld" => 2.2, "pen\n" => 111), array("hello", $heredoc => "string", "string"), // array with object, unset variable and resource variable /*8*/ array(new classA() => 11, @$unset_var => "hello", $fp => 'resource', 11, "hello"), ); // loop through each sub-array of $inputs to check the behavior of array_unique() $iterator = 1; foreach($inputs as $input) { echo "-- Iteration $iterator --\n"; var_dump( array_unique($input) ); $iterator++; } fclose($fp); echo "Done"; ?> --EXPECTF-- *** Testing array_unique() : assoc. array with diff. keys passed to $input argument *** Warning: Illegal offset type in %s on line %d Notice: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d -- Iteration 1 -- array(1) { [0]=> string(1) "0" } -- Iteration 2 -- array(3) { [1]=> string(1) "1" [2]=> string(1) "2" [4]=> string(1) "4" } -- Iteration 3 -- array(1) { [2]=> string(5) "float" } -- Iteration 4 -- array(3) { [1]=> string(2) "f1" [3]=> string(2) "f2" [3333333]=> string(2) "f4" } -- Iteration 5 -- array(3) { ["\tHello"]=> int(111) ["re\td"]=> string(5) "color" ["\v\fworld"]=> float(2.2) } -- Iteration 6 -- array(3) { [" Hello"]=> int(111) ["re d"]=> string(5) "color" [" world"]=> float(2.2) } -- Iteration 7 -- array(2) { [0]=> string(5) "hello" ["Hello world"]=> string(6) "string" } -- Iteration 8 -- array(3) { [""]=> string(5) "hello" [5]=> string(8) "resource" [6]=> int(11) } Done