### Fusionner des tableaux

La fonction array_merge() crée un tableau à partir de la fusion de plusieurs tableaux. Si une clé numérique existe déjà dans un des tableaux, une nouvelle est créée. Si une clé alpha existe déjà, la valeur précédente est remplacée par la nouvelle.

Exemple : fusion de tableaux
<?php require('bib_fonctions.php'); htmlDebut('Fusion de tableaux'); $t1 = array(1, 2, 3, 4); $t2 = array(10, 20, 30); $t3 = array(100, 200); $t = array_merge($t1, $t2, $t3); infoTableau($t); $t3 = array('B41d' => 'Pierre','D12z' => 'Paul'); $t4 = array('B41d' => 'Jacques','C24a' => 'François'); $t = array_merge($t3, $t4); infoTableau($t); $t = array_merge($t1, $t4); infoTableau($t); htmlFin(); ?>

### Difference de tableaux

La fonction array_diff() crée un tableau à partir de la différence de plusieurs tableaux. Les valeurs sont comparées avec l'opérateur d'égalité stricte (===) : elles doivent être égales et de même type. Seules les valeurs du premier tableau qui ne sont pas dans les autres sont "retournées".

Exemple : différence de tableaux
<?php require('bib_fonctions.php'); htmlDebut('Différence de tableaux'); $t1 = array(1, 2, 3, 4, 5, 6, 7); $t2 = array(0, 2, 3, 4, 5); $t3 = array(5, 6, 8); $t = array_diff($t1, $t2, $t3); infoTableau($t); htmlFin(); ?>

### Filtrer un tableau

Nous pouvons créer un tableau par le filtrage d'un autre avec fonction array_filter(). La fonction accepte comme argument le tableau à filtrer, et le nom de la fonction utilisée pour le filtrage. Cette fonction doit renvoyer true pour indiquer que l'élément est à garder, ou false pour indiquer qu'il est à exclure. Le filtrage travaille uniquement sur la valeur des éléments et non sur leur clé. Dans le cas d'un tableau à indices numériques, les clés sont préservées, ce qui peut causer des trous dans la consécutivité des indices.

Exemple : filtrage de tableau
<?php require('bib_fonctions.php'); htmlDebut('Filtrage de tableau'); htmlInfo('Extraction des nombres impaires'); $t = array(4, 9, 12, 23, 35, 18); $tf = array_filter($t, 'impaire'); infoTableau($tf); htmlInfo('Extraction des éléments contenant la lettre a'); $t = array('Pierre', 'Paul', 'Jacques'); $tf = array_filter($t, 'contient'); echo infoTableau($tf); htmlFin(); //===================================================== function impaire($val) { return ($val % 2 == 1); } //===================================================== function contient($val) { return (strpos($val, 'a') !== false); } ?>