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