Array Helper

Le “Array helper” (Outil Array) vous aide a transformer les arrays.

Attention, pour pouvoir l'utiliser correctement, n'oubliez pas que le nom de class est 'arr' au lieu de 'array'.

Methods (Méthodes ou fonctions)

rotate()

'rotate' entraîne une rotation sur un array (en 2D) de forme matrix dans le sens des aiguilles d'une montre. Par exemple, cela transforme un 2×3 array en un 3×2 array.

les deux arguments sont:

  • [array] L'array que vous voulez effectuer une rotation sur.
  • [boolean] Souhaitez-vous garder les mêmes “keys” (clées) dans l'array rotaté ? – TRUE par defaut pour oui.

Exemple:

// Veuillez notez que les déclarations print() ne sont que pour l'affichage
$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);

En HTML cela ressemblera a :

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' enlève une “key” (clé) d'un array et la retourne.

The two arguments are:

  • [string] La “key” (clé) vous voulez supprimer de l'array
  • [array] L'array d’où vous voulez supprimer la “clé”.

Exemple:

// Veillez noter que les declarations print() ne sont que pour l'affichage.
$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);

En HTML cela ressemblera a:

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' extrait une ou plusieurs keys d'un array. Les Keys qui n'existeront pas dans l'array dans laquelle la recherche s'effectuera seront retournés comme NULL dans les données extraites.

Les deux arguments sont:

  • [array] L'array d’où vous voulez extraire le Key
  • [string] Le Key vous voulez extraire de l'array

Exemple:

 $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' performe une recherche basique binaire sur un array. Par defaut, cela returne le “key” (clé) de la valeur de l'array il trouve. Les quatres arguments are:

  • [mixed] La valeur que vous voulez trouver.
  • [array] L'array trié a l’intérieur duquel vous voulez faire la recherche
  • [boolean] Retourne la valeur la plus proche, ou tout simplement FALSE (Valeur par défaut)
  • [boolean]Trie l'array avant la recherche

Exemple:

$my_array = array('10', '20', '30', '50', '80');
echo arr::binary_search('50', $my_array);
// 3
 
echo arr::binary_search('45', $my_array);
// FALSE (N'a pas trouvé)
 
echo arr::binary_search('45', $my_array, TRUE);
// 3
 
echo arr::binary_search('35', $my_array, TRUE);
// 2

range()

'range' remplie un array d'une rangée de nombre.

The two arguments are:

  • [integer](Nombre entier) L'intervalle en chaque nombre (Commencant par 0)
  • [integer](Nombre entier) La limite. (Le nombre qui ne doit pas être dépassé)

Example: (Rendu)

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

Emule la fonction array_merge_recursive, mais ajoute des keys(clés) numériques et remplace les keys(clés) associatives au lieu d'ajouter toutes les keys(clés). Cette fonction a besoin de:

  • [array] N'importe quel nombre d'array
  • retourne [array] L'array fusionné

Exemple:

echo Kohana::debug(arr::merge(array('a', 'b'), array('c', 'd'), array('e' => array('f', 'g'))));

Cela ressemblera à:

(array) Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [e] => Array
        (
            [0] => f
            [1] => g
        )
 
)

overwrite()

'overwrite' écrase et réécrit un array avec de nouvelles valeurs. Notez que les keys qui n'existe pas déjà ne seront pas ajoutés. Cette fonction a besoin de:

  • [array] Le key de l'array
  • [array] Les valeurs de key d'array qui seront réécrites par dessus les anciennes valeurs.

Exemple:

$array1 = array('fruit1' => 'apple', 'fruit2' => 'mango', 'fruit3' => 'pineapple');
$array2 = array('fruit1' => 'strawberry', 'fruit4' => 'coconut');
print Kohana::debug(arr::overwrite($array1, $array2));

Output: (Rendu)

(array) Array
(
    [fruit1] => strawberry
    [fruit2] => mango
    [fruit3] => pineapple
)

map_recursive()

map_recursive($callback, array $array) est une fonction (méthode) qui a été crée parce que PHP ne l'a possède pas, et array_walk_recursive ne crèe que des références dans les arrays et n'est donc pas répétitif. Cette fonction a besoin de:

  • [array] $callback un callback valide à appliquer a chaque membre de l'array
  • [array] $array L'array ou effectuer l'opperation
  • retourne [array] L'array modifié

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

Cela ressemblera à:

(array) Array
(
    [a] => 2
    [b] => 3
    [c] => Array
        (
            [0] => 4
            [1] => 5
        )
 
    [d] => Array
        (
            [e] => 6
        )
)

unshift_assoc()

unshift_assoc est une fonction/méthode qui a été crée parce que PHP ne l'a possède pas. Cela ne fait que dissocier et remplacer la valeur d'un key dans un array associatif. Cette fonction a besoin de:

  • [array] L'array d'oú remplacer l'association
  • [string] Le key a dissocier et remplacer
  • [mixed] La valeur a dissocier et remplacer

Exemple

$fruits = array('fruit1' => 'apple', 'fruit2' => 'mango', 'fruit3' => 'pineapple');
arr::unshift_assoc($fruits, 'fruit1', 'strawberry');
print Kohana::debug($fruits);

Output (Rendu)

(array) Array
(
    [fruit1] => strawberry
    [fruit2] => mango
    [fruit3] => pineapple
)

to_object()

to_object(array $array, $class = 'stdClass') convertit un array en un object (objet). Cette méthode(fonction) supporte les arrays a niveaux multiples. Elle a besoin de:

  • [array] $array L'array à convertir
  • [string] $class La classe (class) de base (Par defaut 'stdClass')

Note: Pour les arrays a un niveau, utilisez Typecasting $object = (object) $array;

Exemple

$array = arr::to_object(array('test' => 13));
print $array ->test;
print Kohana::debug($array);

Output (Rendu)

13
(object) stdClass Object
(
    [test] => 13
)
helpers/arr.txt · Dernière modification: 15/03/2011 11:53 par alban
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0