This is documentation for Kohana v2.3.x. For v3.x documentation, see http://kohanaframework.org/guide .

Table of Contents
StatusDraft
TodoFill ending methods - verify unshift_assoc example - review to_object method

Array Helper

The Array helper assists in transforming arrays. Warning, in order to use it, class name is 'arr' instead of 'array'.

Methods

rotate()

'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()

'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' 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()

'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()

'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
)

merge()

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()

'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()

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:

Example :

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()

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()

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
)
helpers/arr.txt · Last modified: 2009/02/10 16:31 by michael