diff --git a/src/Seq.php b/src/Seq.php index 6c5b861..e182d85 100644 --- a/src/Seq.php +++ b/src/Seq.php @@ -37,7 +37,12 @@ public static function find(iterable $traversable, mixed $needle, bool $caseSens { $usesCallback = $needle instanceof Closure; if (! $usesCallback && $caseSensitive && is_array($traversable)) { - return [array_search($needle, $traversable, true), $needle]; + $result = array_search($needle, $traversable, true); + + return match ($result) { + false => [null, null], + default => [$result, $needle] + }; } if (! $caseSensitive && is_string($needle) && ! $usesCallback) { diff --git a/tests/SeqTest.php b/tests/SeqTest.php index 7c46840..05cfd74 100644 --- a/tests/SeqTest.php +++ b/tests/SeqTest.php @@ -18,6 +18,10 @@ public function testFindWithArrays() ['foo', 'bar'], Seq::find(['foo' => 'bar', 'oof' => 'BAR'], 'BAR', false) ); + $this->assertSame( + [null, null], + Seq::find(['foo' => 'bar', 'oof' => 'BAR'], 'missing') + ); } public function testFindWithGenerators()