Maison  >  Article  >  développement back-end  >  La combinaison de nombres bidimensionnels PHP ne supprime pas les doublons

La combinaison de nombres bidimensionnels PHP ne supprime pas les doublons

WBOY
WBOYoriginal
2023-05-23 11:40:07548parcourir

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]
];

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);

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
        )

)

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);

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
        )

)

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);

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
        )

)

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!

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
Article précédent:tableau php inverséArticle suivant:tableau php inversé