Fusion de tableaux PHP : guide approfondi
La fonction PHP array_merge() est un outil puissant pour combiner des tableaux en un seul tableau. Cette fonction prend deux tableaux ou plus comme arguments et les fusionne en un seul tableau, les valeurs des tableaux suivants écrasant celles des tableaux précédents lorsque les clés correspondent. Remarque : en PHP 8, le fait de passer des arguments qui ne sont pas des tableaux à array_merge() déclenchera une TypeError. Dans ce guide, nous allons examiner en profondeur la fonction array_merge(), en explorant ses différentes utilisations et applications.
Utilisation de base de array_merge()
L’utilisation de base de la fonction array_merge() est simple. Il suffit de passer deux tableaux ou plus comme arguments, et la fonction renverra un nouveau tableau résultant de la fusion des tableaux. Voici un exemple :
Exemple de fonction PHP array_merge
<?php
$array1 = ["color" => "red", 2, 4];
$array2 = ["a", "b", "color" => "green", "shape" => "rectangle", 4];
$result = array_merge($array1, $array2);
print_r($result);
?>Sortie :
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => rectangle
[4] => 4
)Comme vous pouvez le voir, les valeurs de $array2 écrasent celles de $array1 lorsqu’elles ont la même clé.
Fusion de tableaux multidimensionnels
La fonction array_merge() peut également être utilisée pour fusionner des tableaux multidimensionnels. Pour fusionner des tableaux multidimensionnels, il suffit de passer chaque tableau comme argument à la fonction. Voici un exemple :
PHP Pour fusionner des tableaux multidimensionnels en utilisant array_merge_recursive
<?php
$array1 = ["color" => ["favorite" => "red"], 2, 4];
$array2 = ["a", "b", "color" => ["favorite" => "green"], "shape" => "rectangle", 4];
$result = array_merge($array1, $array2);
print_r($result);
?>Sortie :
Array
(
[color] => Array
(
[favorite] => green
)
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => rectangle
[4] => 4
)Notez que array_merge() peut fusionner des tableaux multidimensionnels, mais qu’il écrasera les tableaux imbriqués qui partagent la même clé. Pour ajouter des tableaux imbriqués au lieu de les écraser, utilisez array_merge_recursive().
Fusion d’un tableau indexé avec un tableau associatif
Lors de la fusion d’un tableau indexé avec un tableau associatif, les valeurs des deux tableaux sont combinées. Voici un exemple :
PHP Exemple de fusion d’un tableau indexé avec un tableau associatif à l’aide de la fonction array_merge
<?php
$array1 = ["a", "b", "c"];
$array2 = ["a" => "apple", "b" => "banana", "c" => "cherry"];
$result = array_merge($array1, $array2);
print_r($result);
?>Sortie :
Array
(
[0] => a
[1] => b
[2] => c
[a] => apple
[b] => banana
[c] => cherry
)Comme vous pouvez le voir, les valeurs des deux tableaux sont combinées. Comme les clés sont de types différents (numériques vs chaîne), aucun écrasement ne se produit. C’est un détail important à garder à l’esprit lors de la fusion de tableaux avec différents types de clés.
Fusion d’un tableau associatif avec un tableau indexé
Le résultat de la fusion d’un tableau associatif avec un tableau indexé est similaire. Les valeurs sont combinées et les clés sont conservées selon leur type. Voici un exemple :
PHP fusion d’un tableau associatif avec un tableau indexé en utilisant la fonction array_merge
<?php
$array1 = ["a" => "apple", "b" => "banana", "c" => "cherry"];
$array2 = ["a", "b", "c"];
$result = array_merge($array1, $array2);
print_r($result);
?>Sortie :
Array
(
[a] => apple
[b] => banana
[c] => cherry
[0] => a
[1] => b
[2] => c
)Comme indiqué, les valeurs se combinent sans conflit. Les clés de chaîne de $array1 sont conservées, tandis que les clés numériques de $array2 sont réindexées à partir de 0.
Considérations de performance
La fonction array_merge() a une complexité temporelle linéaire, ce qui signifie que le temps nécessaire pour fusionner des tableaux augmente linéairement avec leur taille. Pour cette raison, il est important de limiter au minimum le nombre de tableaux à fusionner et d’éviter d’utiliser cette fonction sur des tableaux extrêmement volumineux.
Conclusion
La fonction array_merge() est un outil polyvalent pour combiner des tableaux en PHP. Que vous fusionniez des tableaux plats, multidimensionnels, indexés ou associatifs, cette fonction répond à vos besoins. Avec sa complexité temporelle linéaire, il est important de réduire au minimum la taille des tableaux à fusionner, mais avec la bonne approche, cette fonction peut devenir un outil précieux dans votre boîte à outils PHP.
Practice
What is true about the array_merge function in PHP?