This is documentation for Kohana v2.3.x.
Status | Draft |
---|---|
Todo | Fill ending methods - verify unshift_assoc example - review to_object method |
The Array helper assists in transforming arrays. Warning, in order to use it, class name is 'arr' instead of 'array'.
'rotate' rotates an array (two-dimensional) matrix clockwise. Example, turns a 2×3 array into a 3×2 array.
The two arguments are:
Example:
// Please note that the print() statements are for display only $optical_discs = array ( 'CD' => array('700', '780'), 'DVD' => array('4700','650'), 'BD' => array('25000','405') ); print Kohana::debug($optical_discs); $optical_discs = arr::rotate($optical_discs, FALSE); print ('<br /><br />'); print Kohana::debug($optical_discs);
It will result in HTML as:
Array ( [CD] => Array ( [0] => 700 [1] => 780 ) [DVD] => Array ( [0] => 4700 [1] => 650 ) [BD] => Array ( [0] => 25000 [1] => 405 ) ) Array ( [0] => Array ( [CD] => 700 [DVD] => 4700 [BD] => 25000 ) [1] => Array ( [CD] => 780 [DVD] => 650 [BD] => 405 ) )
'remove' removes a key from an array and returns it.
The two arguments are:
Example:
// Please note that the print() statements are for display only $optical_discs = array ( 'CD' => array('700', '780'), 'DVD' => array('4700','650'), 'BD' => array('25000','405') ); print Kohana::debug($optical_discs); $cd = arr::remove('CD', $optical_discs); print ('<br />'); print Kohana::debug($cd); print ('<br />'); print Kohana::debug($optical_discs);
It will result in HTML as:
Array ( [CD] => Array ( [0] => 700 [1] => 780 ) [DVD] => Array ( [0] => 4700 [1] => 650 ) [BD] => Array ( [0] => 25000 [1] => 405 ) ) Array ( [0] => 700 [1] => 780 ) Array ( [DVD] => Array ( [0] => 4700 [1] => 650 ) [BD] => Array ( [0] => 25000 [1] => 405 ) )
'extract' extract ones or more keys from an array. Keys that do not exist in the search array will be NULL in the extracted data.
The two arguments are:
Example:
$optical_discs = array ( 'CD' => array('700', '780'), 'DVD' => array('4700','650'), 'BD' => array('25000','405') ); $optical_discs = arr::extract($optical_discs, 'DVD', 'Bluray'); echo Kohana::debug($optical_discs);
Output:
(array) Array ( [DVD] => Array ( [0] => 4700 [1] => 650 ) [Bluray] => //NULL )
'binary_search' performs a basic binary search on an array. By default, it returns the key of the array value it finds. The four arguments are:
Example:
$my_array = array('10', '20', '30', '50', '80'); echo arr::binary_search('50', $my_array); // 3 echo arr::binary_search('45', $my_array); // FALSE (not found) echo arr::binary_search('45', $my_array, TRUE); // 3 echo arr::binary_search('35', $my_array, TRUE); // 2
'range' fills an array with a range of numbers.
The two arguments are:
Example:
echo Kohana::debug(arr::range(17, 150));
Output:
(array) Array ( [17] => 17 [34] => 34 [51] => 51 [68] => 68 [85] => 85 [102] => 102 [119] => 119 [136] => 136 )
Emulates array_merge_recursive, but appends numeric keys and replaces associative keys, instead of appending all keys. It takes:
Example:
echo Kohana::debug(arr::merge(array('a', 'b'), array('c', 'd'), array('e' => array('f', 'g'))));
It will result as:
(array) Array ( [0] => a [1] => b [2] => c [3] => d [e] => Array ( [0] => f [1] => g ) )
'overwrite' overwrites an array with values from input array(s). Note that non-existing keys will not be appended. It takes:
Example:
$array1 = array('fruit1' => 'apple', 'fruit2' => 'mango', 'fruit3' => 'pineapple'); $array2 = array('fruit1' => 'strawberry', 'fruit4' => 'coconut'); print Kohana::debug(arr::overwrite($array1, $array2));
Output:
(array) Array ( [fruit1] => strawberry [fruit2] => mango [fruit3] => pineapple )
map_recursive($callback, array $array)
has been created because PHP does not have this function, and array_walk_recursive creates references in arrays and is not truly recursive. It takes:
$callback
a valid callback to apply to each member of the array$array
array to map toExample :
public function add($value){ return $value + 1; } echo Kohana::debug(arr::map_recursive(array($this, 'add'), array('a' => 1, 'b' => 2, 'c' => array(3, 4), 'd' => array('e' => 5))));
It will result as:
(array) Array ( [a] => 2 [b] => 3 [c] => Array ( [0] => 4 [1] => 5 ) [d] => Array ( [e] => 6 ) )
unshift_assoc
has been created because PHP does not have this function. It just unshift an association in an associative array. It takes:
Example
$fruits = array('fruit1' => 'apple', 'fruit2' => 'mango', 'fruit3' => 'pineapple'); arr::unshift_assoc($fruits, 'fruit1', 'strawberry'); print Kohana::debug($fruits);
Output
(array) Array ( [fruit1] => strawberry [fruit2] => mango [fruit3] => pineapple )
to_object(array $array, $class = 'stdClass')
converts an array to an object. This method supports multi level arrays. It takes:
Note: For 1-level arrays, use Typecasting $object = (object) $array;
Example
$array = arr::to_object(array('test' => 13)); print $array ->test; print Kohana::debug($array);
Output
13 (object) stdClass Object ( [test] => 13 )