Example #1
0
<?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());
?>

Example #2
0
 /**
  * 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]);
 }