コード例 #1
0
ファイル: MathNode.php プロジェクト: sysvyz/hurl
 public function __invoke(...$data)
 {
     $sort = _Array::sort(_Comparator::numeric());
     $arr = $sort($data[0]);
     $length = count($arr);
     if ($length % 2) {
         return $arr[(int) floor($length / 2)];
     }
     return ($arr[(int) floor($length / 2)] + $arr[(int) floor($length / 2) - 1]) / 2;
 }
コード例 #2
0
ファイル: ComparatorTest.php プロジェクト: sysvyz/hurl
 public function testSortMultipleInvertMap_Map_Implode()
 {
     $mapval = function ($obj) {
         return $obj->val;
     };
     $mapf = function ($obj) {
         return $obj->f;
     };
     $a = new \stdClass();
     $a->val = 1;
     $a->f = 2;
     $b = new \stdClass();
     $b->val = 2;
     $b->f = 1;
     $c = new \stdClass();
     $c->val = 3;
     $c->f = 1;
     $d = new \stdClass();
     $d->val = 4;
     $d->f = 2;
     $data = [$c, $b, $a, $d];
     $node = _Array::values()->sort(_Comparator::numeric()->map($mapf)->invert(), _Comparator::numeric()->invert()->map($mapval))->map($mapval)->implode('');
     $this->assertEquals('4132', $node($data));
 }
コード例 #3
0
ファイル: examples.php プロジェクト: sysvyz/hurl
//int(10)
$explode = _String::explode('.');
var_dump($explode('a.b'));
$chain = $explode->implode('-');
var_dump($chain('a.b'));
$map = $explode->map($fromHex)->implode('.');
var_dump($map('a.b'));
$sort = _Array::sort(function ($a, $b) {
    return $a - $b;
});
var_dump($sort([2, 5, 3, 4, 1]));
//array(5) {
//  [0]=>
//  int(1)
//  [1]=>
//  int(2)
//  [2]=>
//  int(3)
//  [3]=>
//  int(4)
//  [4]=>
//  int(5)
//}
$string = 'a,3,e,22,a2,3e0,cf';
$explodeHexString = _Array::explode(',')->map(_String::trim()->then($fromHex))->sort(_Comparator::numeric());
print_r($explodeHexString($string));
$string = 'a,3,e,22,a2,3e0,cf';
$explodeHexString = _Array::explode(',')->sort(_Comparator::boolean()->map(_String::trim()->then($fromHex)->then(function ($e) {
    return $e % 5;
})), _Comparator::numeric()->map(_String::trim()->then($fromHex)));
print_r($explodeHexString($string));