1--TEST--
2Test array_map() function : usage variations - arrays of different size
3--FILE--
4<?php
5/* Prototype  : array array_map  ( callback $callback  , array $arr1  [, array $...  ] )
6 * Description: Applies the callback to the elements of the given arrays
7 * Source code: ext/standard/array.c
8 */
9
10/*
11 * Test array_map() by passing array having different size
12 *   1) first array as empty array
13 *   2) second array as empty array
14 *   3) second array shorter than first array
15 *   4) first array shorter than second array
16 *   5) one more array than callback function arguments
17 */
18
19echo "*** Testing array_map() : arrays with diff. size ***\n";
20
21function callback($a, $b)
22{
23  return array($a => $b);
24}
25
26// calling array_map with different arrays
27var_dump( array_map('callback', array(1, 2, 3), array()) );
28var_dump( array_map('callback', array(), array('a', 'b', 'c')) );
29var_dump( array_map('callback', array(1, 2, 3), array('a', 'b')) );
30var_dump( array_map('callback', array(012, 0x2F, 0X1A), array(2.3, 12.4e2)) );
31var_dump( array_map('callback', array(), array(1, 2, 3), array('a', 'b')) );  // passing more no. of arrays than callback function argument
32
33echo "Done";
34?>
35--EXPECTF--
36*** Testing array_map() : arrays with diff. size ***
37array(3) {
38  [0]=>
39  array(1) {
40    [1]=>
41    NULL
42  }
43  [1]=>
44  array(1) {
45    [2]=>
46    NULL
47  }
48  [2]=>
49  array(1) {
50    [3]=>
51    NULL
52  }
53}
54array(3) {
55  [0]=>
56  array(1) {
57    [""]=>
58    string(1) "a"
59  }
60  [1]=>
61  array(1) {
62    [""]=>
63    string(1) "b"
64  }
65  [2]=>
66  array(1) {
67    [""]=>
68    string(1) "c"
69  }
70}
71array(3) {
72  [0]=>
73  array(1) {
74    [1]=>
75    string(1) "a"
76  }
77  [1]=>
78  array(1) {
79    [2]=>
80    string(1) "b"
81  }
82  [2]=>
83  array(1) {
84    [3]=>
85    NULL
86  }
87}
88array(3) {
89  [0]=>
90  array(1) {
91    [10]=>
92    float(2.3)
93  }
94  [1]=>
95  array(1) {
96    [47]=>
97    float(1240)
98  }
99  [2]=>
100  array(1) {
101    [26]=>
102    NULL
103  }
104}
105array(3) {
106  [0]=>
107  array(1) {
108    [""]=>
109    int(1)
110  }
111  [1]=>
112  array(1) {
113    [""]=>
114    int(2)
115  }
116  [2]=>
117  array(1) {
118    [""]=>
119    int(3)
120  }
121}
122Done
123