PHP est un langage de programmation largement utilisé et sa fonction d'opération de tableau est très puissante. Parmi elles, la fusion de tableaux est l’une des fonctions les plus pratiques. Cependant, en utilisation réelle, nous constatons parfois que le tableau fusionné est vide, alors que se passe-t-il ?
1. La méthode de base de fusion de tableaux
Voyons d'abord les méthodes de base de fusion de tableaux en PHP. En PHP, trois fonctions peuvent être utilisées pour fusionner des tableaux, à savoir array_merge(), array_merge_recursive() et l'opérateur +.
1. Fonction array_merge()
Cette fonction est utilisée pour fusionner les valeurs de deux ou plusieurs tableaux en un seul tableau et renvoyer le tableau fusionné. Il s'utilise comme suit :
$resultArray = array_merge($array1, $array2);
array_merge() peut utiliser n'importe quel nombre de tableaux, et pour un même nom de clé, seule la valeur correspondant au dernier nom de clé est conservée, et les valeurs correspondant aux noms de clés précédents seront être ignoré.
2. Fonction array_merge_recursive()
Cette fonction est similaire à la fonction array_merge(), mais elle fusionnera de manière récursive deux ou plusieurs tableaux en un seul tableau et renverra le tableau fusionné. Voici comment il est utilisé :
$resultArray = array_merge_recursive($array1, $array2);
array_merge_recursive() peut également prendre n'importe quel nombre de tableaux, et pour le même nom de clé, il fusionnera les valeurs en un seul tableau.
3. Opérateur +
En PHP, vous pouvez également utiliser l'opérateur + pour fusionner des tableaux. Il fusionnera les valeurs de deux tableaux en un seul tableau et renverra le tableau fusionné. Voici comment il est utilisé : L'opérateur
$resultArray = $array1 + $array2;
+ peut également être utilisé avec n'importe quel nombre de tableaux. Pour un même nom de clé, seule la valeur correspondant au premier tableau est conservée, et les valeurs correspondant aux tableaux suivants sont ignorées.
2. La situation où le tableau fusionné est vide
Lorsque nous utilisons les trois méthodes ci-dessus pour fusionner des tableaux, nous constatons parfois que le résultat fusionné est un tableau vide. Cette situation est très déroutante. Alors pourquoi cela arrive-t-il ?
1. Un conflit de nom de clé entraîne un échec de fusion
Lors de l'utilisation des trois méthodes ci-dessus pour fusionner des tableaux, si le même nom de clé existe dans les deux tableaux, l'opération de fusion peut échouer et le résultat fusionné est un tableau vide.
Par exemple, il y a deux tableaux $array1 et $array2, leurs noms de clés sont les mêmes, les tableaux sont les suivants :
$array1 = array("a" => "A", "b" => "B"); $array2 = array("a" => "AA", "c" => "C");
Si nous utilisons la fonction array_merge() pour fusionner comme suit :
$resultArray = array_merge($array1, $array2);
Ensuite, à cause de le conflit de noms de clés, la fusion L'opération échouera et le résultat de $resultArray sera un tableau vide.
De même, si nous utilisons la fonction array_merge_recursive() pour fusionner, comme indiqué ci-dessous :
$resultArray = array_merge_recursive($array1, $array2);
L'opération de fusion échouera en raison de conflits de noms de clés, et le résultat de $resultArray sera également un tableau vide.
Si nous utilisons l'opérateur + pour fusionner, comme indiqué ci-dessous :
$resultArray = $array1 + $array2;
L'opération de fusion échouera également en raison du conflit de nom de clé, et le résultat de $resultArray sera toujours un tableau vide.
2. Les tableaux vides provoquent un échec de fusion
En plus des conflits de noms de clés, si l'un ou les deux tableaux sont vides, l'opération de fusion échouera également et le résultat fusionné sera un tableau vide.
Par exemple, si un tableau est un tableau vide, comme indiqué ci-dessous :
$array1 = array(); $array2 = array("a" => "A");
Si nous utilisons la fonction array_merge() pour fusionner, comme indiqué ci-dessous :
$resultArray = array_merge($array1, $array2);
Alors l'opération de fusion échouera car le tableau $array1 est un tableau vide, $ Le résultat de resultArray est un tableau vide.
De même, si nous utilisons la fonction array_merge_recursive() pour fusionner, comme indiqué ci-dessous :
$resultArray = array_merge_recursive($array1, $array2);
Ensuite, comme le tableau $array1 est un tableau vide, l'opération de fusion échouera et le résultat de $resultArray est également un tableau vide. .
Si nous utilisons l'opérateur + pour fusionner comme suit :
$resultArray = $array1 + $array2;
Ensuite, puisque le tableau $array1 est un tableau vide, le résultat de $resultArray est $array2 lui-même, c'est-à-dire $resultArray = $array2.
3. Empêcher l'échec de la fusion de tableaux
Afin d'éviter des tableaux vides lors de la fusion de tableaux à l'aide des trois méthodes ci-dessus, nous pouvons utiliser certaines méthodes pour éviter cette situation.
1. Utilisez la fonction isset() pour déterminer si le tableau est vide
Lors de la fusion de tableaux à l'aide des trois méthodes ci-dessus, nous pouvons utiliser la fonction isset() pour déterminer si un tableau est vide afin d'éviter un échec de fusion.
Par exemple, si nous voulons fusionner les tableaux $array1 et $array2, nous pouvons déterminer si le tableau est vide comme ceci :
if (isset($array1) && isset($array2)) { $resultArray = array_merge($array1, $array2); }
De cette façon, nous pouvons éviter la situation où $arrays1 ou $array2 est vide.
De même, lorsque nous pouvons utiliser la fonction array_merge_recursive() ou l'opérateur +, nous pouvons également utiliser la fonction isset() pour déterminer si le tableau est vide.
2. Utilisez la fonction array() pour initialiser le tableau
Lors de la fusion de tableaux à l'aide des trois méthodes ci-dessus, nous pouvons également utiliser la fonction array() pour initialiser le tableau lorsque le tableau est vide afin d'éviter un échec de fusion.
Par exemple, si nous avons un tableau vide $emptyArray, nous pouvons l'initialiser comme ceci :
$emptyArray = array();
De cette façon, lorsque nous utilisons la fonction array_merge(), la fonction array_merge_recursive() ou l'opérateur +, si nous voulons fusionner les tableaux $emptyArray et $array2 , vous pouvez faire ceci :
$resultArray = array_merge($emptyArray, $array2);
De cette façon, il n'y aura pas d'échec de fusion.
3.Résumé
Les tableaux sont l'une des fonctions les plus puissantes de PHP, et la fusion de tableaux est également une opération courante. Mais dans les applications réelles, nous constatons parfois que le tableau fusionné est vide. À ce stade, la raison peut être due à un conflit de noms de clé ou au fait que le tableau est vide. Afin d'éviter cette situation, nous pouvons utiliser la fonction isset() pour déterminer si le tableau est vide, et utiliser la fonction array() pour initialiser le tableau. De cette façon, nous pouvons mener à bien l’opération de fusion de tableaux.
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!