Maison >développement back-end >Problème PHP >Comment garder les clés inchangées lors de la fusion de tableaux php

Comment garder les clés inchangées lors de la fusion de tableaux php

PHPz
PHPzoriginal
2023-04-18 14:11:231044parcourir

En PHP, un tableau est une structure de données très courante qui doit souvent être manipulée et traitée. La fusion de tableaux est l’une des opérations courantes qui combine deux ou plusieurs tableaux en un tableau plus grand. Normalement, lors de la fusion de tableaux, les noms de clés sont modifiés et les noms de clés d'origine sont remplacés par de nouveaux noms de clés, mais il est parfois nécessaire de fusionner des tableaux sans modifier les noms de clés. Alors, comment fusionner des tableaux en PHP tout en gardant les noms de clés inchangés ? Nous présenterons ensuite les méthodes et techniques pour y parvenir à travers cet article.

1. Bases de la fusion de tableaux PHP

En PHP, vous pouvez utiliser la fonction array_merge() et l'opérateur + pour fusionner des tableaux. Les méthodes d'implémentation et les effets de ces deux méthodes sont fondamentalement les mêmes, mais il existe encore quelques différences subtiles : la fonction

  1. array_merge()

la fonctionarray_merge() fusionne un ou plusieurs tableaux en un seul tableau. Cette fonction renvoie un nouveau tableau contenant tous les éléments du tableau de paramètres. Lors de la fusion, les noms des clés seront réorganisés selon l'ordre de fusion. Autrement dit, le tableau suivant remplacera le même nom de clé dans le précédent. La syntaxe spécifique est la suivante :

array array_merge ( array $array1 [, array $array2 [, array $... ]] )

L'exemple de code est le suivant :

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array_merge($array1, $array2);
print_r($array3);

Résultats d'exploitation :

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
)
  1. +operator

+operator peut être utilisé pour fusionner des tableaux et peut conserver les noms de clé d'origine. Lorsqu'il y a des noms de clés en double, le tableau suivant écrasera le tableau précédent. L'utilisation spécifique est la suivante :

$newsArray = array("title"=>"新闻标题", "content"=>"新闻内容");
$imageArray = array("title"=>"图片标题", "url"=>"http://www.example.com/image.jpg");
$finalArray = $newsArray + $imageArray;
print_r($finalArray);

Résultats d'exécution :

Array (
    [title] => 新闻标题
    [content] => 新闻内容
    [url] => http://www.example.com/image.jpg
)

2. Les clés de fusion de tableaux PHP restent inchangées

Par défaut, lors de la fusion de tableaux dans les deux méthodes ci-dessus, les noms de clés changeront. Mais parfois, nous devons effectuer des opérations de fusion basées sur les noms de clés d'origine. À ce stade, vous pouvez utiliser la fonction array_replace(), qui peut remplacer la valeur avec le même nom de clé dans le tableau précédent par la valeur du tableau suivant, tout en conservant le nom de clé d'origine. Si vous devez fusionner plusieurs tableaux, vous pouvez les appeler l'un après l'autre. La fonction

  1. array_replace() La fonction

array_replace() remplace la valeur avec le même nom de clé dans le tableau précédent par la valeur dans le tableau suivant, tout en conservant le nom de clé d'origine. L'utilisation spécifique est la suivante :

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array_replace($array1, $array2);
print_r($array3);

Résultats d'exécution :

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
)

À ce stade, les noms de clés d'origine et l'ordre du tableau $array1 restent inchangés et le contenu de $array2 est écrasé dans $array1.

  1. Fusion de plusieurs tableaux

Si vous devez fusionner plusieurs tableaux, vous pouvez appeler la fonction array_replace() dans l'ordre, par exemple :

$array1 = array("name"=>"张三", "age"=>20);
$array2 = array("age"=>25, "email"=>"zhangsan@gmail.com");
$array3 = array("city"=>"北京", "gender"=>"男");
$finalArray = array_replace($array1, $array2, $array3);
print_r($finalArray);

Résultat d'exécution :

Array (
    [name] => 张三
    [age] => 25
    [email] => zhangsan@gmail.com
    [city] => 北京
    [gender] => 男
)

À ce moment, le tableau $finalArray La clé les noms et l'ordre dans $array1 sont les mêmes que dans $array1, tandis que les noms de clés et les valeurs dans les tableaux $array2 et $array3 sont écrasés dans $finalArray.

3. Résumé

De manière générale, il existe de nombreuses façons d'implémenter la fusion de tableaux en PHP, et vous pouvez choisir différentes méthodes en fonction de vos besoins. Lorsqu'il est nécessaire d'effectuer une opération de fusion sans changer le nom de la clé, la fonction array_replace() est un moyen très pratique de l'implémenter. À l'aide de cette fonction, vous pouvez fusionner le contenu d'un ou plusieurs tableaux dans le premier tableau tout en conservant l'ordre des noms de clés d'origine. En même temps, vous devez faire attention lorsque vous utilisez cette fonction : il n'y a pas de limite au nombre de tableaux à fusionner, mais si les noms de clés dans les tableaux sont les mêmes, les valeurs des tableaux suivants seront écrasées. les valeurs clés correspondantes dans les tableaux précédents.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn