Merge pull request #648 from cviebrock/array-helpers

add array_except() and array_only(), mimicking Input::except() and Input::only() but for any array
This commit is contained in:
Taylor Otwell 2012-05-10 06:25:51 -07:00
commit cded744ac9
2 changed files with 27 additions and 3 deletions

View File

@ -245,6 +245,30 @@ function array_pluck($array, $key)
}, $array); }, $array);
} }
/**
* Get a subset of the items from the given array.
*
* @param array $array
* @param array $keys
* @return array
*/
function array_only($array, $keys)
{
return array_intersect_key( $array, array_flip((array) $keys) );
}
/**
* Get all of the given array except for a specified array of items.
*
* @param array $array
* @param array $keys
* @return array
*/
function array_except($array, $keys)
{
return array_diff_key( $array, array_flip((array) $keys) );
}
/** /**
* Transform Eloquent models to a JSON object. * Transform Eloquent models to a JSON object.
* *

View File

@ -127,7 +127,7 @@ public static function json()
*/ */
public static function only($keys) public static function only($keys)
{ {
return array_intersect_key(static::get(), array_flip((array) $keys)); return array_only(static::get(), $keys);
} }
/** /**
@ -146,7 +146,7 @@ public static function only($keys)
*/ */
public static function except($keys) public static function except($keys)
{ {
return array_diff_key(static::get(), array_flip((array) $keys)); return array_except(static::get(), $keys);
} }
/** /**
@ -207,7 +207,7 @@ public static function has_file($key)
{ {
return ! is_null(static::file("{$key}.tmp_name")); return ! is_null(static::file("{$key}.tmp_name"));
} }
/** /**
* Move an uploaded file to permanent storage. * Move an uploaded file to permanent storage.
* *