Maison >développement back-end >Problème PHP >Comment fusionner des tableaux en php sans changer la clé

Comment fusionner des tableaux en php sans changer la clé

青灯夜游
青灯夜游original
2021-07-15 14:00:312761parcourir

Méthode : 1. Utilisez l'opérateur "+", la syntaxe est "tableau 1 + tableau 2" ; 2. Utilisez la fonction array_merge_recursive() Lorsque deux éléments du tableau ou plus ont le même nom de clé, aucune clé ne sera exécutée. Au lieu de cela, l'écrasement du nom combine de manière récursive plusieurs valeurs portant le même nom de clé dans un tableau.

Comment fusionner des tableaux en php sans changer la clé

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Généralement, array_merge() est utilisé pour fusionner deux tableaux en PHP

Par exemple :

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = array_merge($data1, $data2);
var_dump($data);

Le résultat est :

array(6) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "bbb"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(3) "ddd"
  [4]=>
  string(3) "eee"
  [5]=>
  string(3) "fff"
}

Ok Nous voyons que l'utilisation de array_merge() réinitialisera la valeur de la clé Si la valeur de la clé nous est utile et que nous ne voulons pas la réinitialiser, nous pouvons utiliser "+" pour fusionner les tableaux.

$data1 = ['111' => 'aaa', '222' => 'bbb', '333' => 'ccc'];
$data2 = ['444' => 'ddd', '555' => 'eee', '666' => 'fff'];
$data = $data1 + $data2;
var_dump($data);

Obtenez le résultat :

array(6) {
  [111]=>
  string(3) "aaa"
  [222]=>
  string(3) "bbb"
  [333]=>
  string(3) "ccc"
  [444]=>
  string(3) "ddd"
  [555]=>
  string(3) "eee"
  [666]=>
  string(3) "fff"
}

Vous pouvez également utiliser la fonction array_merge_recursive pour fusionner les cellules d'un ou plusieurs tableaux, et les valeurs d'un tableau sont ajoutées au tableau précédent. Renvoie le tableau résultant.

Cette fonction est une version améliorée de array_merge. Elle ajoute les fonctions suivantes sur la base de array_merge : Si la valeur de la clé est la même, elle est la même que array_merge lorsqu'il s'agit d'un nombre, cette dernière ; n'écrasera plus le précédent, mais à la place Attaché à l'arrière, la méthode est un ajout récursif ; par exemple :

 /* array_merge_recursive */
$jiaArr = array(
	'name1'=>'xiaoli',
	'name2'=>'xiaohua',
	'name3'=>'xiaoming',
	'1'=>'teacher',
);
 
$jiaBrr = array(
	'name1'=>'xiaolis',
	'name5'=>'xiaohuas',
	'name6'=>'xiaomings',
	'1'=>'teachers',
);
$jiaAll = array_merge_recursive($jiaArr,$jiaBrr);
var_dump($jiaAll);
 
/*浏览器output:
array(7) {
  ["name1"]=>
  array(2) {
    [0]=>
    string(6) "xiaoli"
    [1]=>
    string(7) "xiaolis"
  }
  ["name2"]=>
  string(7) "xiaohua"
  ["name3"]=>
  string(8) "xiaoming"
  [0]=>
  string(7) "teacher"
  ["name5"]=>
  string(8) "xiaohuas"
  ["name6"]=>
  string(9) "xiaomings"
  [1]=>
  string(8) "teachers"
}
*/

name1 a les deux tableaux, mais n'est pas écrasé mais ajouté de manière récursive, 1 valeur de clé de tableau​​sont toujours réorganisé ;

Apprentissage recommandé : "Tutoriel vidéo PHP"

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