Que faire si le tableau est vide après la fusion php

PHPz
Libérer: 2023-04-20 14:42:55
original
898 Les gens l'ont consulté

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);
Copier après la connexion
Copier après la connexion
Copier après la connexion

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);
Copier après la connexion
Copier après la connexion
Copier après la connexion

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;
Copier après la connexion
Copier après la connexion
Copier après la connexion

+ 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");
Copier après la connexion

Si nous utilisons la fonction array_merge() pour fusionner comme suit :

$resultArray = array_merge($array1, $array2);
Copier après la connexion
Copier après la connexion
Copier après la connexion

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);
Copier après la connexion
Copier après la connexion
Copier après la connexion

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;
Copier après la connexion
Copier après la connexion
Copier après la connexion

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");
Copier après la connexion

Si nous utilisons la fonction array_merge() pour fusionner, comme indiqué ci-dessous :

$resultArray = array_merge($array1, $array2);
Copier après la connexion
Copier après la connexion
Copier après la connexion

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);
Copier après la connexion
Copier après la connexion
Copier après la connexion

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;
Copier après la connexion
Copier après la connexion
Copier après la connexion

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);
}
Copier après la connexion

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();
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal