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