1--TEST--
2Test join() function : usage variations - different values for 'pieces' argument
3--FILE--
4<?php
5/* Prototype  : string join( string $glue, array $pieces )
6 * Description: Join array elements with a string
7 * Source code: ext/standard/string.c
8 * Alias of function: implode()
9*/
10
11/*
12 * test join() by giving different pieces values
13*/
14
15echo "*** Testing join() : usage variations ***\n";
16
17$pieces_arrays = array (
18  array(1, 2), // array with default keys and numrice values
19  array(1.1, 2.2), // array with default keys & float values
20  array( array(2), array(1)), // sub arrays
21  array(false,true), // array with default keys and boolean values
22  array(), // empty array
23  array(NULL), // array with NULL
24  array("a","aaaa","b","bbbb","c","ccccc"),
25
26  // associative arrays
27  array(1 => "one", 2 => "two", 3 => "three"),  // explicit numeric keys, string values
28  array("one" => 1, "two" => 2, "three" => 3 ),  // string keys & numeric values
29  array( 1 => 10, 2 => 20, 4 => 40, 3 => 30),  // explicit numeric keys and numeric values
30  array( "one" => "ten", "two" => "twenty", "three" => "thirty"),  // string key/value
31  array("one" => 1, 2 => "two", 4 => "four"),  //mixed
32
33  // associative array, containing null/empty/boolean values as key/value
34  array(NULL => "NULL", null => "null", "NULL" => NULL, "null" => null),
35  array(true => "true", false => "false", "false" => false, "true" => true),
36  array("" => "emptyd", '' => 'emptys', "emptyd" => "", 'emptys' => ''),
37  array(1 => '', 2 => "", 3 => NULL, 4 => null, 5 => false, 6 => true),
38  array('' => 1, "" => 2, NULL => 3, null => 4, false => 5, true => 6),
39
40  // array with repetative keys
41  array("One" => 1, "two" => 2, "One" => 10, "two" => 20, "three" => 3)
42);
43
44// a multichar glue value
45$glue = "], [";
46
47// loop through each $pieces_arrays element and call join()
48$iteration = 1;
49for($index = 0; $index < count($pieces_arrays); $index ++) {
50  echo "-- Iteration $iteration --\n";
51  var_dump( join($glue, $pieces_arrays[$index]) );
52  $iteration ++;
53}
54
55echo "Done\n";
56?>
57--EXPECTF--
58*** Testing join() : usage variations ***
59-- Iteration 1 --
60string(6) "1], [2"
61-- Iteration 2 --
62string(10) "1.1], [2.2"
63-- Iteration 3 --
64
65Notice: Array to string conversion in %s on line %d
66
67Notice: Array to string conversion in %s on line %d
68string(14) "Array], [Array"
69-- Iteration 4 --
70string(5) "], [1"
71-- Iteration 5 --
72string(0) ""
73-- Iteration 6 --
74string(0) ""
75-- Iteration 7 --
76string(36) "a], [aaaa], [b], [bbbb], [c], [ccccc"
77-- Iteration 8 --
78string(19) "one], [two], [three"
79-- Iteration 9 --
80string(11) "1], [2], [3"
81-- Iteration 10 --
82string(20) "10], [20], [40], [30"
83-- Iteration 11 --
84string(23) "ten], [twenty], [thirty"
85-- Iteration 12 --
86string(16) "1], [two], [four"
87-- Iteration 13 --
88string(12) "null], [], ["
89-- Iteration 14 --
90string(22) "true], [false], [], [1"
91-- Iteration 15 --
92string(14) "emptys], [], ["
93-- Iteration 16 --
94string(21) "], [], [], [], [], [1"
95-- Iteration 17 --
96string(11) "4], [5], [6"
97-- Iteration 18 --
98string(13) "10], [20], [3"
99Done
100