Ejemplo n.º 1
0
/**
 * f\contains_in($coll, $in)
 *
 * Returns whether a nested structure exists or not.
 *
 * f\contains_in(array('a' => array('a1' => 1)), array('a'));
 * => true
 *
 * f\contains_in(array('a' => array('a1' => 1)), array('a', 'a1));
 * => true
 *
 * f\contains_in(array('a' => array('a1' => 1)), array('a', 'a2));
 * => false
 *
 * f\contains_in(array('a' => array('a1' => 1)), array('b'));
 * => false
 *
 * f\contains_in(array('a' => array('a1' => 1)), array('b', 'b1'));
 * => false
 *
 * // returns false with an empty in
 * f\contains_in(array('a' => 1), array());
 * => false
 *
 * // supports infinite nesting
 * f\contains_in(array('a', 'a1', 'a1I', 'a1IA'), array('a', 'a1', 'a1I', 'a1IA'));
 * => true
 */
function contains_in($coll, $in)
{
    $arrayIn = f\_coll_in($coll, $in);
    if ($arrayIn === false) {
        return false;
    }
    return f\contains($arrayIn, f\last($in));
}
Ejemplo n.º 2
0
/**
 * f\get_in_or($coll, $in, $default)
 *
 * Returns a element of a collection in a nested structure in.
 * The default is returned if the in does not exist.
 *
 * f\get_in_or(array('a' => array('a1' => 'foo'), array('a', 'a1'));
 * => 'foo'
 *
 * f\get_in_or(array('a' => array('a1' => 'foo'), array('a', 'a2'), 'bar');
 * => 'bar'
 */
function get_in_or($coll, $in, $default)
{
    $arrayIn = f\_coll_in($coll, $in);
    if ($arrayIn === false) {
        return $default;
    }
    return f\get_or($arrayIn, f\last($in), $default);
}
Ejemplo n.º 3
0
 /**
  * @dataProvider provideLast
  */
 public function testLast($expected, $coll)
 {
     $this->assertSame($expected, f\last($coll));
 }
Ejemplo n.º 4
0
 /**
  * @Given /^there is a user "([^"]*)" with password "([^"]*)"$/
  */
 public function thereIsAUserWithPassword($username, $password)
 {
     $this->users[] = ['id' => count($this->users) ? f\last(f\keys($this->users)) : 1, 'username' => $username, 'password' => $password];
 }
Ejemplo n.º 5
0
/**
 * f\drop_last($coll)
 *
 * Returns an array based on coll with the last element removed.
 *
 * f\drop_last(array('a' => 1, 'b' => 2));
 * => array('a' => 1)
 */
function drop_last($coll)
{
    $result = f\to_array($coll);
    unset($result[f\last(f\keys($result))]);
    return $result;
}