1--TEST--
2Test array_walk() function : usage variations - 'input' array with different values
3--FILE--
4<?php
5/* Prototype  : bool array_walk(array $input, string $funcname [, mixed $userdata])
6 * Description: Apply a user function to every member of an array
7 * Source code: ext/standard/array.c
8*/
9
10/*
11 * Testing array_walk() with following types of 'input' arrays:
12 *    integer, float, string, bool, null, empty & mixed
13*/
14
15// callback function
16/*
17 * Prototype : print_value(mixed $value, int $key, int $count)
18 * Parameters : $value - array entries(values)
19 *              $key - keys in given input array
20 *              $count - extra parameter used as an index
21 * Description : prints the array values with keys and count value
22 */
23function print_value($value, $key, $count)
24{
25  echo  $count." : ".$key." ".$value."\n";
26}
27
28echo "*** Testing array_walk() : 'input' array with different values***\n";
29
30// different arrays as input
31$input_values = array(
32
33       // integer values
34/*1*/  array(1, 0, -10, 023, -041, 0x5A, 0X1F, -0x6E),
35
36       // float value
37       array(3.4, 0.8, -2.9, 6.25e2, 8.20E-3),
38
39       // string values
40       array('Mango', "Apple", 'Orange', "Lemon"),
41
42       // bool values
43/*4*/  array(true, false, TRUE, FALSE),
44
45       // null values
46       array(null, NULL),
47
48       // empty array
49       array(),
50
51       // binary array
52       array(b"binary"),
53
54       // mixed array
55/*8*/  array(16, 8.345, "Fruits", true, null, FALSE, -98, 0.005, 'banana')
56);
57
58for($count = 0; $count < count($input_values); $count++) {
59  echo "\n-- Iteration ".($count + 1)." --\n";
60  var_dump( array_walk($input_values[$count], "print_value", $count+1));
61}
62echo "Done"
63?>
64--EXPECTF--
65*** Testing array_walk() : 'input' array with different values***
66
67-- Iteration 1 --
681 : 0 1
691 : 1 0
701 : 2 -10
711 : 3 19
721 : 4 -33
731 : 5 90
741 : 6 31
751 : 7 -110
76bool(true)
77
78-- Iteration 2 --
792 : 0 3.4
802 : 1 0.8
812 : 2 -2.9
822 : 3 625
832 : 4 0.0082
84bool(true)
85
86-- Iteration 3 --
873 : 0 Mango
883 : 1 Apple
893 : 2 Orange
903 : 3 Lemon
91bool(true)
92
93-- Iteration 4 --
944 : 0 1
954 : 1
964 : 2 1
974 : 3
98bool(true)
99
100-- Iteration 5 --
1015 : 0
1025 : 1
103bool(true)
104
105-- Iteration 6 --
106bool(true)
107
108-- Iteration 7 --
1097 : 0 binary
110bool(true)
111
112-- Iteration 8 --
1138 : 0 16
1148 : 1 8.345
1158 : 2 Fruits
1168 : 3 1
1178 : 4
1188 : 5
1198 : 6 -98
1208 : 7 0.005
1218 : 8 banana
122bool(true)
123Done
124