Aujourd'hui, j'ai envie de partager avec vous une astuce PHP peu connue, mais qui est bien pratique : l'union (+) de deux tableaux
Utiliser la fonction array_merge est un vrai casse-tête quand il s'agit de fusionner des tableaux en préservant les clefs.
Or il existe un opérateur bien pratique : l'opérateur +, qui fusionne deux tableaux :
$t1 = array('a','b','d');
$t2 = array(3 => 'f',4 => 'g');
$t3 = $t1 + $t2;
print_r($t3);
<p>Array</p>
(
[0] => a
[1] => b
[2] => d
[3] => f
[4] => g
)
Pratique non ?
Et en plus, utiliser l'opérateur + est légèrement (à peine) plus rapide qu'un array_merge classique (sur 10 000 occurrences de fusion de deux petits tableaux en PHP 5.3, sous Ubuntu, j'obtiens un très léger écart de 0.05 secondes ^^)
Attention, le comportement en cas de clefs communes est différent entre array_merge et + :
$array1 = array(
'brand' => 'peugeot',
'car' => '206',
'color' => 'red'
);
$array2 = array(
'brand' => 'renault',
'car' => 'scenic',
'color' => 'blue'
);
Avec array_merge : la dernière valeur rencontrée écrase la précédente :
$array4 = array_merge($array1, $array2);
print_r($array4);
Array
(
[brand] => renault
[car] => scenic
[color] => blue
)
Avec l'opérateur +, la première valeur est conservée :
$array3 = $array1 + $array2;
print_r($array3);
Array
(
[brand] => peugeot
[car] => 206
[color] => red
)
© Jean-François Lépine, 2013 - 2024