Returns true if array contains given element. Comparison is based on the following rules:
- same type + same type = strict check
- object + object = loose check
- array + array = goes through all elements and invokes Arrays::contains
- string + integer = loose check
- boolean + string ('true' or 'false') = loose check
- false in other cases
Example:
$result = Arrays::contains(array(1, 2, 3), 2);
Result:
true
public static function contains($element) { return function ($array) use($element) { return Arrays::contains($array, $element); }; }
public function excludes() { $elements = func_get_args(); $currentArray = $this->actual; $foundElement = ''; $anyFound = Arrays::any($elements, function ($element) use($currentArray, &$foundElement) { $checkInArray = Arrays::contains($currentArray, $element); if ($checkInArray) { $foundElement = $element; } return $checkInArray; }); AssertAdapter::assertFalse($anyFound, "Found element {$foundElement} in array {$this->actualString}"); return $this; }
/** * @test */ public function containsShouldWorkForDifferentTypes() { $this->assertTrue(Arrays::contains(array(1, 2, 3), 1)); }