<?php /** * Partition code sample * * PHP version 5.5 * * @category Samples * @package PHPR * @author Eustáquio Rangel <*****@*****.**> * @license http://www.gnu.org/copyleft/gpl.html GPL * @link http://github.com/taq/torm */ require_once "../../vendor/autoload.php"; $col = new PHPR\Collection([1, 2, 3, 4, 5]); $cols = $col->partition(function ($e) { return $e % 2 == 0; }); echo "even numbers:\n"; var_dump($cols[0]->values()); echo "odd numbers:\n"; var_dump($cols[1]->values()); ?>
/** * Test associative partition * * @return null */ public function testPartitionAssoc() { $ass = new PHPR\Collection(["1" => "one", "2" => "two", "3" => "three"]); $part = $ass->partition(function ($e) { return strlen($e) > 3; }); $this->assertEquals(2, sizeof($part)); $pos = $part[0]; $neg = $part[1]; $this->assertEquals(1, sizeof($pos->values())); $this->assertEquals("3", array_keys($pos->values())[0]); $this->assertEquals("three", array_values($pos->values())[0]); $this->assertEquals(2, sizeof($neg->values())); $this->assertEquals("1", array_keys($neg->values())[0]); $this->assertEquals("2", array_keys($neg->values())[1]); $this->assertEquals("one", array_values($neg->values())[0]); $this->assertEquals("two", array_values($neg->values())[1]); }