public function testAny() { $this->assertTrue(any([true, false, false])); $this->assertTrue(any([false, 1, false])); $this->assertTrue(any([false, false, [1]])); $this->assertTrue(any(['a', false, false])); $this->assertTrue(any([false, new \StdClass(), false])); $this->assertFalse(any([])); $this->assertFalse(any([null, false, false])); $this->assertFalse(any([null, [], false])); $this->assertFalse(any([null, false, ''])); $this->assertFalse(any([0, false, false])); $this->assertTrue(any([18, 19, 20], function ($v) { return $v === 18; })); $this->assertFalse(any([19, 20, 21], function ($v) { return $v === 18; })); $this->assertTrue(call_user_func(any, [true, false, false])); $this->assertEquals('\\nspl\\a\\any', any); }
use function nspl\a\keySorted; use function nspl\a\indexed; use function nspl\a\take; use function nspl\a\reorder; use const nspl\op\eq; use const nspl\op\object; use function nspl\op\itemGetter; use function nspl\op\propertyGetter; use function nspl\f\partial; $users = map(object, [array('id' => 1, 'name' => 'John', 'age' => 15), array('id' => 2, 'name' => 'Jack', 'age' => 35), array('id' => 3, 'name' => 'Sarah', 'age' => 25), array('id' => 4, 'name' => 'Norah', 'age' => 20), array('id' => 5, 'name' => 'Michael', 'age' => 30), array('id' => 6, 'name' => 'Bob', 'age' => 30)]); // 1. Check all statuses are "ready" $statuses = ['ready', 'ready', 'not-ready']; $ready = all($statuses, partial(eq, 'ready')); echo $ready ? "Everybody is ready\n" : "Someone is not ready\n"; // 2. Check at least someone is "ready" $someoneIsReady = any($statuses, partial(eq, 'ready')); echo $someoneIsReady ? "Someone is ready\n" : "Everybody is not ready\n"; // 3. Get user ids $userIds = map(propertyGetter('id'), $users); echo sprintf("User ids are: %s\n", implode(', ', $userIds)); // 4. Count users younger than 25 $youngerThan25Count = reduce(function ($count, $user) { return $count + (int) ($user->age < 25); }, $users); echo sprintf("%s users are younger than 25\n", $youngerThan25Count); // 5. Get users younger than 25 $youngerThan25 = filter(function ($user) { return $user->age < 25; }, $users); echo "These users are younger than 25:\n"; foreach ($youngerThan25 as $user) {