La combinaison de nombres bidimensionnels PHP ne supprime pas les doublons

WBOY
Libérer: 2023-05-23 11:40:07
original
545 Les gens l'ont consulté

En PHP, nous devons souvent utiliser des tableaux, et nous devons souvent fusionner des tableaux, par exemple en fusionnant deux tableaux en un seul ou en fusionnant plusieurs tableaux en un seul. Lorsqu'il s'agit de fusionner des tableaux bidimensionnels, nous pouvons rencontrer un problème, c'est-à-dire que le tableau fusionné ne sera pas automatiquement dédupliqué. Cet article présentera le problème et la solution de la combinaison de nombres bidimensionnels PHP sans déduplication.

1. Qu'est-ce qu'un tableau bidimensionnel

En PHP, un tableau est une structure de données très importante, et chaque donnée a une valeur clé et un index correspondant. Un tableau à deux dimensions est un tableau imbriqué dans un autre tableau, c'est-à-dire que chaque élément est un tableau.

2. Tableaux bidimensionnels en PHP

En PHP, il existe deux façons de représenter des tableaux bidimensionnels L'une consiste à utiliser la fonction array() et l'autre consiste à utiliser le sucre de syntaxe []. un exemple pour illustrer:

// 使用array()函数表示二维数组
$students = array(
    array('name' => '张三', 'age' => 18),
    array('name' => '李四', 'age' => 19),
    array('name' => '王五', 'age' => 20)
);

// 使用[]语法糖表示二维数组
$students = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];
Copier après la connexion

3. Fusion de tableaux bidimensionnels en PHP

PHP fournit la fonction array_merge() pour fusionner des tableaux. Cette fonction peut fusionner plusieurs tableaux et renvoyer un nouveau tableau.

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '赵六', 'age' => 21],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);

print_r($students);
Copier après la connexion

Les résultats de sortie sont les suivants :

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [3] => Array
        (
            [name] => 赵六
            [age] => 21
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)
Copier après la connexion

Nous pouvons voir que l'utilisation de la fonction array_merge() peut facilement fusionner deux tableaux en un seul tableau. Cependant, lorsqu'il y a des éléments en double dans le tableau fusionné, le tableau fusionné ne sera pas automatiquement dédupliqué, comme indiqué ci-dessous :

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '李四', 'age' => 19],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);

print_r($students);
Copier après la connexion

Le résultat de sortie est le suivant :

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [3] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)
Copier après la connexion

Nous pouvons voir que le tableau fusionné contient deux éléments répétés [ nom => '李思', âge => 19].

4. Solution au problème selon lequel la combinaison de nombres bidimensionnels PHP ne supprime pas les doublons

Afin de résoudre le problème selon lequel la combinaison de nombres bidimensionnels PHP ne supprime pas les doublons, nous pouvons utiliser la fonction array_unique(). Cette fonction peut être utilisée pour supprimer les éléments en double d'un tableau et renvoyer un nouveau tableau non en double.

L'exemple de code est le suivant :

$students1 = [
    ['name' => '张三', 'age' => 18],
    ['name' => '李四', 'age' => 19],
    ['name' => '王五', 'age' => 20]
];

$students2 = [
    ['name' => '李四', 'age' => 19],
    ['name' => '孙七', 'age' => 22],
];

$students = array_merge($students1, $students2);
$students = array_unique($students, SORT_REGULAR);

print_r($students);
Copier après la connexion

Le résultat de sortie est le suivant :

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 19
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 20
        )

    [4] => Array
        (
            [name] => 孙七
            [age] => 22
        )

)
Copier après la connexion

Nous pouvons voir que l'utilisation de la fonction array_unique() peut facilement fusionner les tableaux fusionnés, et enfin obtenir un tableau sans éléments en double.

5. Résumé

Cet article présente le problème et la solution de la combinaison de nombres bidimensionnels PHP sans déduplication, nous pouvons savoir que bien que la fonction array_merge() puisse être utilisée pour fusionner facilement des tableaux, lorsqu'elle est utilisée. Lors de la fusion de tableaux bidimensionnels, la duplication ne sera pas automatiquement supprimée. Vous devez utiliser la fonction array_unique() pour supprimer la duplication afin d'obtenir un nouveau tableau non dupliqué.

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