[ create a new paste ] login | about

Link: http://codepad.org/GRTawMk8    [ raw code | fork ]

k4st - PHP, pasted on Dec 7:
<?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));
}


Output:
No errors or program output.


Create a new paste based on this one


Comments: