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