class ArrayLib

Library of static methods for manipulating arrays.

Methods

static array
invert(array $arr)

Inverses the first and second level keys of an associative array, keying the result by the second level, and combines all first level entries within them.

static array
valuekey($arr)

Return an array where the keys are all equal to the values.

static array
array_values_recursive(array $array)

Flattens a multi-dimensional array to a one level array without preserving the keys

static array
filter_keys($arr, $keys)

Filter an array by keys (useful for only allowing certain form-input to be saved).

static boolean
is_associative(array $array)

Determines if an array is associative by checking for existing keys via array_key_exists().

static boolean
in_array_recursive(mixed $needle, array $haystack, boolean $strict = false)

Recursively searches an array $haystack for the value(s) $needle.

static array
array_map_recursive($f, $array)

Similar to array_map, but recurses when arrays are encountered.

static array
array_merge_recursive(array $array)

Recursively merges two or more arrays.

static array
flatten(array $array, boolean $preserveKeys = true, array $out = array())

Takes an multi dimension array and returns the flattened version.

static Generator
iterateVolatile(array $list)

Iterate list, but allowing for modifications to the underlying list.

Details

at line 49
static array invert(array $arr)

Inverses the first and second level keys of an associative array, keying the result by the second level, and combines all first level entries within them.

Before: array( 'row1' => array( 'col1' =>'val1', 'col2' => 'val2' ), 'row2' => array( 'col1' => 'val3', 'col2' => 'val4' ) )

After: array( 'col1' => array( 'row1' => 'val1', 'row2' => 'val3', ), 'col2' => array( 'row1' => 'val2', 'row2' => 'val4', ), )

Parameters

array $arr

Return Value

array

at line 72
static array valuekey($arr)

Return an array where the keys are all equal to the values.

Parameters

$arr array

Return Value

array

at line 83
static array array_values_recursive(array $array)

Flattens a multi-dimensional array to a one level array without preserving the keys

Parameters

array $array

Return Value

array

at line 97
static array filter_keys($arr, $keys)

Filter an array by keys (useful for only allowing certain form-input to be saved).

Parameters

$arr array
$keys array

Return Value

array

at line 118
static boolean is_associative(array $array)

Determines if an array is associative by checking for existing keys via array_key_exists().

Parameters

array $array

Return Value

boolean

See also

http://nz.php.net/manual/en/function.is-array.php#121692

at line 139
static boolean in_array_recursive(mixed $needle, array $haystack, boolean $strict = false)

Recursively searches an array $haystack for the value(s) $needle.

Assumes that all values in $needle (if $needle is an array) are at the SAME level, not spread across multiple dimensions of the $haystack.

Parameters

mixed $needle
array $haystack
boolean $strict

Return Value

boolean

at line 167
static array array_map_recursive($f, $array)

Similar to array_map, but recurses when arrays are encountered.

Actually only one array argument is supported.

Parameters

$f callback to apply
$array array

Return Value

array

at line 188
static array array_merge_recursive(array $array)

Recursively merges two or more arrays.

Behaves similar to array_merge_recursive(), however it only merges values when both are arrays rather than creating a new array with both values, as the PHP version does. The same behaviour also occurs with numeric keys, to match that of what PHP does to generate $_REQUEST.

Parameters

array $array

Return Value

array

at line 233
static array flatten(array $array, boolean $preserveKeys = true, array $out = array())

Takes an multi dimension array and returns the flattened version.

Parameters

array $array
boolean $preserveKeys
array $out

Return Value

array

at line 260
static Generator iterateVolatile(array $list)

Iterate list, but allowing for modifications to the underlying list.

Items in $list will only be iterated exactly once for each key, and supports items being removed or deleted. List must be associative.

Parameters

array $list

Return Value

Generator