codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
<?php /** * Make an object that isn't an array into an array containing that object, or * return the element if it is an array. */ function array_box($elm) { if(is_array($elm)) { return $elm; } return array($elm); } /** * Flatten a two-dimensional array into a 1-dimensional array. */ function array_flatten(array $arr) { return call_user_func_array("array_merge", $arr); } /** * Zip a 2-dimensional array into another 2-dimensional array, e.g.: * array_zip(array(1, 2, 3), array('a', 'b', 'c')) * => array(array(1, 'a'), array(2, 'b'), array(3, 'c')) */ function array_zip(array $arr) { return call_user_func_array("array_map", array_merge(array(NULL), $arr)); } /** * Rotate a 2-dimensional array. */ function array_rotate(array $arr) { return array_zip($arr); } /** * Preserve only a few keys in an associative array. E.g. * array_keep_keys(array('a'=>1, 'b'=>2, 'c'=>3), 'a', 'c') * array_keep_keys(array('a'=>1, 'b'=>2, 'c'=>3), array('a', 'c')) * => array('a'=>1, 'c'=>3) */ function array_keep_keys(array $arr, $key1) { $keys = func_get_args(); $keys = array_slice($keys, 1, count($keys), FALSE); $keys = array_flatten(array_map("array_box", $keys)); return array_intersect_key($arr, array_flip($keys)); }
Private
[
?
]
Run code