Exemplo n.º 1
0
/**
 * @param array|object $map
 * @return array
 */
function mapAsArray($map)
{
    if (is_array($map)) {
        return $map;
    } elseif (!is_object($map)) {
        throw new \InvalidArgumentException('A map must be an array or an object.');
    } elseif ($map instanceof \Iterator) {
        return iterator_to_array($map);
    } elseif ($map instanceof \Traversable) {
        $array = [];
        foreach ($map as $key => $value) {
            $array[$key] = $value;
        }
        return $array;
    }
    return extractObjectVars($map);
}
Exemplo n.º 2
0
/**
 * @param mixed $value
 * @return \Closure
 */
function hasValue($value)
{
    return function ($item) use($value) {
        if (!is_array($item) && !is_object($item)) {
            return false;
        }
        /** @var object|array $item */
        if (is_object($item)) {
            $clone = clone $item;
            unset($item);
            $clone instanceof \Traversable or $clone = extractObjectVars($clone);
            $item = $clone;
        }
        foreach ($item as $element) {
            if ($element === $value) {
                return true;
            }
        }
        return false;
    };
}