1--TEST-- 2Test array_filter() function : usage variations - Different types of array for 'input' argument 3--FILE-- 4<?php 5/* Prototype : array array_filter(array $input [, callback $callback]) 6 * Description: Filters elements from the array via the callback. 7 * Source code: ext/standard/array.c 8*/ 9 10/* 11* Passing different types of array as 'input' argument. 12*/ 13 14// callback function returning always false 15function always_false($input) 16{ 17 return false; 18} 19 20// callback function returning always true 21function always_true($input) 22{ 23 return true; 24} 25 26echo "*** Testing array_filter() : usage variations - different types of array for 'input' argument***\n"; 27 28// different types of 'input' array 29$input_values = array( 30 array(0, 1, 2, -1, 034, 0X4A), // integer values 31 array(0.0, 1.2, 1.2e3, 1.2e-3), // float values 32 array('value1', "value2", '', " ", ""), // string values 33 array(true, false, TRUE, FALSE), // bool values 34 array(null, NULL), // null values 35 array(1 => 'one', 'zero' => 0, -2 => "value"), //associative array 36 array("one" => 1, null => 'null', 5.2 => "float", true => 1, "" => 'empty'), // associative array with different keys 37 array(1 => 'one', 2, "key" => 'value') // combinition of associative and non-associative array 38 39); 40 41// loop through each element of 'input' with default callback 42for($count = 0; $count < count($input_values); $count++) 43{ 44 echo "-- Iteration ".($count + 1). " --\n"; 45 var_dump( array_filter($input_values[$count]) ); 46 var_dump( array_filter($input_values[$count], 'always_true') ); 47 var_dump( array_filter($input_values[$count], 'always_false') ); 48} 49 50echo "Done" 51?> 52--EXPECTF-- 53*** Testing array_filter() : usage variations - different types of array for 'input' argument*** 54-- Iteration 1 -- 55array(5) { 56 [1]=> 57 int(1) 58 [2]=> 59 int(2) 60 [3]=> 61 int(-1) 62 [4]=> 63 int(28) 64 [5]=> 65 int(74) 66} 67array(6) { 68 [0]=> 69 int(0) 70 [1]=> 71 int(1) 72 [2]=> 73 int(2) 74 [3]=> 75 int(-1) 76 [4]=> 77 int(28) 78 [5]=> 79 int(74) 80} 81array(0) { 82} 83-- Iteration 2 -- 84array(3) { 85 [1]=> 86 float(1.2) 87 [2]=> 88 float(1200) 89 [3]=> 90 float(0.0012) 91} 92array(4) { 93 [0]=> 94 float(0) 95 [1]=> 96 float(1.2) 97 [2]=> 98 float(1200) 99 [3]=> 100 float(0.0012) 101} 102array(0) { 103} 104-- Iteration 3 -- 105array(3) { 106 [0]=> 107 string(6) "value1" 108 [1]=> 109 string(6) "value2" 110 [3]=> 111 string(1) " " 112} 113array(5) { 114 [0]=> 115 string(6) "value1" 116 [1]=> 117 string(6) "value2" 118 [2]=> 119 string(0) "" 120 [3]=> 121 string(1) " " 122 [4]=> 123 string(0) "" 124} 125array(0) { 126} 127-- Iteration 4 -- 128array(2) { 129 [0]=> 130 bool(true) 131 [2]=> 132 bool(true) 133} 134array(4) { 135 [0]=> 136 bool(true) 137 [1]=> 138 bool(false) 139 [2]=> 140 bool(true) 141 [3]=> 142 bool(false) 143} 144array(0) { 145} 146-- Iteration 5 -- 147array(0) { 148} 149array(2) { 150 [0]=> 151 NULL 152 [1]=> 153 NULL 154} 155array(0) { 156} 157-- Iteration 6 -- 158array(2) { 159 [1]=> 160 string(3) "one" 161 [-2]=> 162 string(5) "value" 163} 164array(3) { 165 [1]=> 166 string(3) "one" 167 ["zero"]=> 168 int(0) 169 [-2]=> 170 string(5) "value" 171} 172array(0) { 173} 174-- Iteration 7 -- 175array(4) { 176 ["one"]=> 177 int(1) 178 [""]=> 179 string(5) "empty" 180 [5]=> 181 string(5) "float" 182 [1]=> 183 int(1) 184} 185array(4) { 186 ["one"]=> 187 int(1) 188 [""]=> 189 string(5) "empty" 190 [5]=> 191 string(5) "float" 192 [1]=> 193 int(1) 194} 195array(0) { 196} 197-- Iteration 8 -- 198array(3) { 199 [1]=> 200 string(3) "one" 201 [2]=> 202 int(2) 203 ["key"]=> 204 string(5) "value" 205} 206array(3) { 207 [1]=> 208 string(3) "one" 209 [2]=> 210 int(2) 211 ["key"]=> 212 string(5) "value" 213} 214array(0) { 215} 216Done 217