public function testArrayTranspose() { $array = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9)); $array = array_transpose($array); $this->assertEquals($array, array(array(1, 4, 7), array(2, 5, 8), array(3, 6, 9))); // $array = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9, 'key' => 'value')); $array = array_transpose($array); $this->assertEquals($array, array(array(1, 4, 7), array(2, 5, 8), array(3, 6, 9), 'key' => array(2 => 'value'))); }
/** function array_shrink [arrayShrink] * Returns all elements with second level key $key * from a 2-D array * e.g.- * $array[0]['foo'] = 'bar'; * $array[1]['foo'] = 'baz'; * * array_shrink($array, 'foo') returns * array( * [0] = 'bar' * [1] = 'baz' * ) * * This function returns the input if it is not * an array, or returns false if the key is not * present in the array * * @param array data array * @param mixed second level key * @return mixed array (or original input or bool false on failure) */ function array_shrink($array, $key) { if (!is_array($array)) { return $array; } $array = array_transpose($array); if (!isset($array[$key])) { return false; } return $array[$key]; }