Dans la programmation PHP, les opérations de tableau sont des tâches très courantes. Nous devons généralement fusionner les tableaux, remplacer les éléments dans les tableaux ou fusionner des éléments de plusieurs tableaux. À l'heure actuelle, la fonction array_replace () est un outil très utile. Il remplace non seulement les valeurs du tableau, mais combine également plusieurs nombres ensemble.
Cet article introduira en détail l'utilisation de la fonction array_replace () pour vous aider à mieux comprendre comment fusionner plusieurs tableaux en php.
array_replace () est une fonction intégrée PHP qui combine des éléments d'un ou plusieurs tableaux dans le premier tableau. Si la même clé existe dans le tableau, les valeurs du tableau suivant remplaceront les valeurs de la même touche dans le premier tableau. En d'autres termes, il remplace les éléments du tableau précédent par les éléments du tableau suivant en séquence.
<span><span><span class="hljs-title function_ invoke__">array_replace</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> ...</span><span><span class="hljs-variable">$arrays</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>
$ Array1 : Le premier tableau, en tant que tableau cible, sera remplacé par des éléments d'autres tableaux.
$ Arrays : un ou plusieurs tableaux dont les valeurs remplacent les valeurs de la clé correspondante dans $ array1 .
Supposons que nous ayons deux tableaux et que nous voulons fusionner les valeurs du deuxième tableau dans le premier tableau:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_replace</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Résultat de sortie:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[a] => </span><span><span class="hljs-number">1</span></span><span>
[b] => </span><span><span class="hljs-number">3</span></span><span>
[c] => </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>
Dans cet exemple, array_replace () remplace la valeur dans $ array2 par la valeur de la même clé (c'est-à-dire 'b' ) dans $ array1 , tout en ajoutant la nouvelle paire de valeurs de clé ( 'C' => 4 ) dans $ array2 au tableau de résultat.
array_replace () prend également en charge le passage de plusieurs tableaux, que vous pouvez utiliser pour fusionner les éléments à partir de plusieurs tableaux.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$array3</span></span><span> = [</span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-string">"d"</span></span><span> => </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_replace</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>, </span><span><span class="hljs-variable">$array3</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Résultat de sortie:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[a] => </span><span><span class="hljs-number">1</span></span><span>
[b] => </span><span><span class="hljs-number">3</span></span><span>
[c] => </span><span><span class="hljs-number">4</span></span><span>
[d] => </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>
Dans cet exemple, la valeur dans $ array2 remplace la touche correspondante ( 'b' ) dans $ array1 , tandis que les paires de valeurs de clé dans $ array3 sont ajoutées directement au tableau de résultat.
Bien que Array_replace () puisse être utilisé pour fusionner plusieurs tableaux, il est quelque peu différent de la fonction array_merge () .
array_replace () : il remplace la valeur du tableau d'origine en fonction de la clé. Autrement dit, s'il y a les mêmes clés, le tableau suivant écrasera les clés correspondantes dans le tableau précédent.
array_merge () : il combine les tableaux, que les clés soient identiques ou non. Pour les tableaux indexés, il réindexait; Pour les tableaux associatifs, il conserve la clé d'origine.
Par exemple:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-variable">$array2</span></span><span> = [</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>];
</span><span><span class="hljs-variable">$result_merge</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result_merge</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Résultat de sortie:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[b] => </span><span><span class="hljs-number">3</span></span><span>
[c] => </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>
Lorsque vous utilisez array_merge () , les index du tableau sont réorganisés, tandis que dans array_replace () , l'index et les touches restent inchangés.
array_replace () ne remplacera que les touches qui existent dans le tableau d'origine. Pour les clés incompatibles, le tableau suivant sera directement ajouté au résultat.
S'il y a des clés numériques dans le tableau, array_replace () sera remplacé en fonction de la clé, ce qui peut entraîner la modification de l'ordre des clés numériques. Et array_merge () réindexera les clés numériques.
array_replace () est une fonction très puissante qui convient au remplacement des éléments existants dans un tableau ou à la fusion d'éléments de plusieurs tableaux en un tableau. Lors de la manipulation des tableaux dans PHP, la maîtrise de l'utilisation de Array_replace () peut rendre votre code plus concis et efficace.
Si vous devez faire attention au remplacement de la valeur clé et à l'ajout lorsque vous traitez plusieurs combinaisons de nombres, Array_replace () est certainement l'un de vos outils indispensables.