1--TEST-- 2Test array_search() function : usage variations - different needle 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 needle values */ 12 13echo "*** Testing array_search() with different needle values ***\n"; 14$arrays = array ( 15 array(0), 16 array("a" => "A", 2 => "B", "C" => 3, 4 => 4, "one" => 1, "" => NULL, "b", "ab", "abcd"), 17 array(4, array(1, 2 => 3), "one" => 1, "5" => 5 ), 18 array(-1, -2, -3, -4, -2.989888, "-0.005" => "neg0.005", 2.0 => "float2", "-.9" => -.9), 19 array(TRUE, FALSE), 20 array("", array()), 21 array("abcd\x00abcd\x00abcd"), 22 array("abcd\tabcd\nabcd\rabcd\0abcdefghij") 23); 24 25$array_compare = array ( 26 4, 27 "4", 28 4.00, 29 "b", 30 "5", 31 -2, 32 -2.0, 33 -2.98989, 34 "-.9", 35 "True", 36 "", 37 array(), 38 NULL, 39 "ab", 40 "abcd", 41 0.0, 42 -0, 43 "abcd\x00abcd\x00abcd" 44); 45/* loop to check if elements in $array_compare exist in $arrays 46 using array_search() */ 47$counter = 1; 48foreach($arrays as $array) { 49 foreach($array_compare as $compare) { 50 echo "-- Iteration $counter --\n"; 51 //strict option OFF 52 var_dump(array_search($compare,$array)); 53 //strict option ON 54 var_dump(array_search($compare,$array,TRUE)); 55 //strict option OFF 56 var_dump(array_search($compare,$array,FALSE)); 57 $counter++; 58 } 59} 60 61echo "Done\n"; 62?> 63--EXPECT-- 64*** Testing array_search() with different needle values *** 65-- Iteration 1 -- 66bool(false) 67bool(false) 68bool(false) 69-- Iteration 2 -- 70bool(false) 71bool(false) 72bool(false) 73-- Iteration 3 -- 74bool(false) 75bool(false) 76bool(false) 77-- Iteration 4 -- 78int(0) 79bool(false) 80int(0) 81-- Iteration 5 -- 82bool(false) 83bool(false) 84bool(false) 85-- Iteration 6 -- 86bool(false) 87bool(false) 88bool(false) 89-- Iteration 7 -- 90bool(false) 91bool(false) 92bool(false) 93-- Iteration 8 -- 94bool(false) 95bool(false) 96bool(false) 97-- Iteration 9 -- 98bool(false) 99bool(false) 100bool(false) 101-- Iteration 10 -- 102int(0) 103bool(false) 104int(0) 105-- Iteration 11 -- 106int(0) 107bool(false) 108int(0) 109-- Iteration 12 -- 110bool(false) 111bool(false) 112bool(false) 113-- Iteration 13 -- 114int(0) 115bool(false) 116int(0) 117-- Iteration 14 -- 118int(0) 119bool(false) 120int(0) 121-- Iteration 15 -- 122int(0) 123bool(false) 124int(0) 125-- Iteration 16 -- 126int(0) 127bool(false) 128int(0) 129-- Iteration 17 -- 130int(0) 131int(0) 132int(0) 133-- Iteration 18 -- 134int(0) 135bool(false) 136int(0) 137-- Iteration 19 -- 138int(4) 139int(4) 140int(4) 141-- Iteration 20 -- 142int(4) 143bool(false) 144int(4) 145-- Iteration 21 -- 146int(4) 147bool(false) 148int(4) 149-- Iteration 22 -- 150int(5) 151int(5) 152int(5) 153-- Iteration 23 -- 154bool(false) 155bool(false) 156bool(false) 157-- Iteration 24 -- 158bool(false) 159bool(false) 160bool(false) 161-- Iteration 25 -- 162bool(false) 163bool(false) 164bool(false) 165-- Iteration 26 -- 166bool(false) 167bool(false) 168bool(false) 169-- Iteration 27 -- 170bool(false) 171bool(false) 172bool(false) 173-- Iteration 28 -- 174bool(false) 175bool(false) 176bool(false) 177-- Iteration 29 -- 178string(0) "" 179bool(false) 180string(0) "" 181-- Iteration 30 -- 182string(0) "" 183bool(false) 184string(0) "" 185-- Iteration 31 -- 186string(0) "" 187string(0) "" 188string(0) "" 189-- Iteration 32 -- 190int(6) 191int(6) 192int(6) 193-- Iteration 33 -- 194int(7) 195int(7) 196int(7) 197-- Iteration 34 -- 198string(1) "a" 199bool(false) 200string(1) "a" 201-- Iteration 35 -- 202string(1) "a" 203bool(false) 204string(1) "a" 205-- Iteration 36 -- 206bool(false) 207bool(false) 208bool(false) 209-- Iteration 37 -- 210int(0) 211int(0) 212int(0) 213-- Iteration 38 -- 214int(0) 215bool(false) 216int(0) 217-- Iteration 39 -- 218int(0) 219bool(false) 220int(0) 221-- Iteration 40 -- 222bool(false) 223bool(false) 224bool(false) 225-- Iteration 41 -- 226int(5) 227bool(false) 228int(5) 229-- Iteration 42 -- 230bool(false) 231bool(false) 232bool(false) 233-- Iteration 43 -- 234bool(false) 235bool(false) 236bool(false) 237-- Iteration 44 -- 238bool(false) 239bool(false) 240bool(false) 241-- Iteration 45 -- 242bool(false) 243bool(false) 244bool(false) 245-- Iteration 46 -- 246bool(false) 247bool(false) 248bool(false) 249-- Iteration 47 -- 250bool(false) 251bool(false) 252bool(false) 253-- Iteration 48 -- 254bool(false) 255bool(false) 256bool(false) 257-- Iteration 49 -- 258bool(false) 259bool(false) 260bool(false) 261-- Iteration 50 -- 262bool(false) 263bool(false) 264bool(false) 265-- Iteration 51 -- 266bool(false) 267bool(false) 268bool(false) 269-- Iteration 52 -- 270bool(false) 271bool(false) 272bool(false) 273-- Iteration 53 -- 274bool(false) 275bool(false) 276bool(false) 277-- Iteration 54 -- 278bool(false) 279bool(false) 280bool(false) 281-- Iteration 55 -- 282bool(false) 283bool(false) 284bool(false) 285-- Iteration 56 -- 286bool(false) 287bool(false) 288bool(false) 289-- Iteration 57 -- 290bool(false) 291bool(false) 292bool(false) 293-- Iteration 58 -- 294bool(false) 295bool(false) 296bool(false) 297-- Iteration 59 -- 298bool(false) 299bool(false) 300bool(false) 301-- Iteration 60 -- 302int(1) 303int(1) 304int(1) 305-- Iteration 61 -- 306int(1) 307bool(false) 308int(1) 309-- Iteration 62 -- 310bool(false) 311bool(false) 312bool(false) 313-- Iteration 63 -- 314string(3) "-.9" 315bool(false) 316string(3) "-.9" 317-- Iteration 64 -- 318bool(false) 319bool(false) 320bool(false) 321-- Iteration 65 -- 322bool(false) 323bool(false) 324bool(false) 325-- Iteration 66 -- 326bool(false) 327bool(false) 328bool(false) 329-- Iteration 67 -- 330bool(false) 331bool(false) 332bool(false) 333-- Iteration 68 -- 334bool(false) 335bool(false) 336bool(false) 337-- Iteration 69 -- 338bool(false) 339bool(false) 340bool(false) 341-- Iteration 70 -- 342int(2) 343bool(false) 344int(2) 345-- Iteration 71 -- 346int(2) 347bool(false) 348int(2) 349-- Iteration 72 -- 350bool(false) 351bool(false) 352bool(false) 353-- Iteration 73 -- 354int(0) 355bool(false) 356int(0) 357-- Iteration 74 -- 358int(0) 359bool(false) 360int(0) 361-- Iteration 75 -- 362int(0) 363bool(false) 364int(0) 365-- Iteration 76 -- 366int(0) 367bool(false) 368int(0) 369-- Iteration 77 -- 370int(0) 371bool(false) 372int(0) 373-- Iteration 78 -- 374int(0) 375bool(false) 376int(0) 377-- Iteration 79 -- 378int(0) 379bool(false) 380int(0) 381-- Iteration 80 -- 382int(0) 383bool(false) 384int(0) 385-- Iteration 81 -- 386int(0) 387bool(false) 388int(0) 389-- Iteration 82 -- 390int(0) 391bool(false) 392int(0) 393-- Iteration 83 -- 394int(1) 395bool(false) 396int(1) 397-- Iteration 84 -- 398int(1) 399bool(false) 400int(1) 401-- Iteration 85 -- 402int(1) 403bool(false) 404int(1) 405-- Iteration 86 -- 406int(0) 407bool(false) 408int(0) 409-- Iteration 87 -- 410int(0) 411bool(false) 412int(0) 413-- Iteration 88 -- 414int(1) 415bool(false) 416int(1) 417-- Iteration 89 -- 418int(1) 419bool(false) 420int(1) 421-- Iteration 90 -- 422int(0) 423bool(false) 424int(0) 425-- Iteration 91 -- 426bool(false) 427bool(false) 428bool(false) 429-- Iteration 92 -- 430bool(false) 431bool(false) 432bool(false) 433-- Iteration 93 -- 434bool(false) 435bool(false) 436bool(false) 437-- Iteration 94 -- 438bool(false) 439bool(false) 440bool(false) 441-- Iteration 95 -- 442bool(false) 443bool(false) 444bool(false) 445-- Iteration 96 -- 446bool(false) 447bool(false) 448bool(false) 449-- Iteration 97 -- 450bool(false) 451bool(false) 452bool(false) 453-- Iteration 98 -- 454bool(false) 455bool(false) 456bool(false) 457-- Iteration 99 -- 458bool(false) 459bool(false) 460bool(false) 461-- Iteration 100 -- 462bool(false) 463bool(false) 464bool(false) 465-- Iteration 101 -- 466int(0) 467int(0) 468int(0) 469-- Iteration 102 -- 470int(1) 471int(1) 472int(1) 473-- Iteration 103 -- 474int(0) 475bool(false) 476int(0) 477-- Iteration 104 -- 478bool(false) 479bool(false) 480bool(false) 481-- Iteration 105 -- 482bool(false) 483bool(false) 484bool(false) 485-- Iteration 106 -- 486int(0) 487bool(false) 488int(0) 489-- Iteration 107 -- 490int(0) 491bool(false) 492int(0) 493-- Iteration 108 -- 494bool(false) 495bool(false) 496bool(false) 497-- Iteration 109 -- 498bool(false) 499bool(false) 500bool(false) 501-- Iteration 110 -- 502bool(false) 503bool(false) 504bool(false) 505-- Iteration 111 -- 506bool(false) 507bool(false) 508bool(false) 509-- Iteration 112 -- 510bool(false) 511bool(false) 512bool(false) 513-- Iteration 113 -- 514bool(false) 515bool(false) 516bool(false) 517-- Iteration 114 -- 518bool(false) 519bool(false) 520bool(false) 521-- Iteration 115 -- 522bool(false) 523bool(false) 524bool(false) 525-- Iteration 116 -- 526bool(false) 527bool(false) 528bool(false) 529-- Iteration 117 -- 530bool(false) 531bool(false) 532bool(false) 533-- Iteration 118 -- 534bool(false) 535bool(false) 536bool(false) 537-- Iteration 119 -- 538bool(false) 539bool(false) 540bool(false) 541-- Iteration 120 -- 542bool(false) 543bool(false) 544bool(false) 545-- Iteration 121 -- 546bool(false) 547bool(false) 548bool(false) 549-- Iteration 122 -- 550bool(false) 551bool(false) 552bool(false) 553-- Iteration 123 -- 554bool(false) 555bool(false) 556bool(false) 557-- Iteration 124 -- 558int(0) 559bool(false) 560int(0) 561-- Iteration 125 -- 562int(0) 563bool(false) 564int(0) 565-- Iteration 126 -- 566int(0) 567int(0) 568int(0) 569-- Iteration 127 -- 570bool(false) 571bool(false) 572bool(false) 573-- Iteration 128 -- 574bool(false) 575bool(false) 576bool(false) 577-- Iteration 129 -- 578bool(false) 579bool(false) 580bool(false) 581-- Iteration 130 -- 582bool(false) 583bool(false) 584bool(false) 585-- Iteration 131 -- 586bool(false) 587bool(false) 588bool(false) 589-- Iteration 132 -- 590bool(false) 591bool(false) 592bool(false) 593-- Iteration 133 -- 594bool(false) 595bool(false) 596bool(false) 597-- Iteration 134 -- 598bool(false) 599bool(false) 600bool(false) 601-- Iteration 135 -- 602bool(false) 603bool(false) 604bool(false) 605-- Iteration 136 -- 606bool(false) 607bool(false) 608bool(false) 609-- Iteration 137 -- 610bool(false) 611bool(false) 612bool(false) 613-- Iteration 138 -- 614bool(false) 615bool(false) 616bool(false) 617-- Iteration 139 -- 618bool(false) 619bool(false) 620bool(false) 621-- Iteration 140 -- 622bool(false) 623bool(false) 624bool(false) 625-- Iteration 141 -- 626bool(false) 627bool(false) 628bool(false) 629-- Iteration 142 -- 630int(0) 631bool(false) 632int(0) 633-- Iteration 143 -- 634int(0) 635bool(false) 636int(0) 637-- Iteration 144 -- 638bool(false) 639bool(false) 640bool(false) 641Done 642