1--TEST-- 2Test array_search() function : usage variations - different haystack values 3--FILE-- 4<?php 5/* 6 * Prototype : mixed array_search ( mixed $needle, array $haystack [, bool $strict] ) 7 * Description: Searches haystack for needle and returns the key if it is found in the array, FALSE otherwise 8 * Source Code: ext/standard/array.c 9*/ 10 11/* Test array_search() with different possible haystack values */ 12 13echo "*** Testing array_search() with different haystack values ***\n"; 14 15$misc_array = array ( 16 'a', 17 'key' =>'d', 18 3, 19 ".001" =>-67, 20 "-.051" =>"k", 21 0.091 =>"-.08", 22 "e" =>"5", 23 "y" =>NULL, 24 NULL =>"", 25 0, 26 TRUE, 27 FALSE, 28 -27.39999999999, 29 " ", 30 "abcd\x00abcd\x00\abcd\x00abcdefghij", 31 "abcd\nabcd\tabcd\rabcd\0abcd" 32); 33$array_type = array(TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL, array(), "PHP", ""); 34/* loop to do loose and strict type check of elements in 35 $array_type on elements in $misc_array using array_search(); 36 checking PHP type comparison tables 37*/ 38$counter = 1; 39foreach($array_type as $type) { 40 echo "-- Iteration $counter --\n"; 41 //loose type checking 42 var_dump( array_search($type,$misc_array ) ); 43 //strict type checking 44 var_dump( array_search($type,$misc_array,true) ); 45 //loose type checking 46 var_dump( array_search($type,$misc_array,false) ); 47 $counter++; 48} 49 50echo "Done\n"; 51?> 52--EXPECT-- 53*** Testing array_search() with different haystack values *** 54-- Iteration 1 -- 55int(0) 56int(3) 57int(0) 58-- Iteration 2 -- 59string(1) "y" 60int(4) 61string(1) "y" 62-- Iteration 3 -- 63int(3) 64bool(false) 65int(3) 66-- Iteration 4 -- 67string(3) "key" 68int(2) 69string(3) "key" 70-- Iteration 5 -- 71int(3) 72bool(false) 73int(3) 74-- Iteration 6 -- 75int(3) 76bool(false) 77int(3) 78-- Iteration 7 -- 79int(2) 80bool(false) 81int(2) 82-- Iteration 8 -- 83int(3) 84bool(false) 85int(3) 86-- Iteration 9 -- 87string(1) "y" 88string(1) "y" 89string(1) "y" 90-- Iteration 10 -- 91string(1) "y" 92bool(false) 93string(1) "y" 94-- Iteration 11 -- 95int(2) 96bool(false) 97int(2) 98-- Iteration 12 -- 99string(1) "y" 100string(0) "" 101string(1) "y" 102Done 103