Trouver l'intersection de tableaux bidimensionnels en php

WBOY
Libérer: 2023-05-07 17:47:08
original
1007 Les gens l'ont consulté

En programmation PHP, le tableau bidimensionnel est l'une des structures de données couramment utilisées. L'une des opérations les plus couramment utilisées sur les tableaux bidimensionnels consiste à rechercher une intersection. Alors, comment trouver l’intersection de tableaux bidimensionnels en PHP ? Jetons un coup d'œil à l'implémentation spécifique.

1. Utilisez la fonction array_intersect

PHP fournit une fonction intégrée array_intersect(), qui peut être utilisée pour trouver l'intersection de deux tableaux. Cette fonction peut accepter plusieurs tableaux comme paramètres. Pour les tableaux bidimensionnels, vous devez utiliser la fonction array_map pour convertir le tableau associatif en tableau d'index.

L'exemple de code est le suivant :

$arr1 = array(
    array('id'=>1,'name'=>'Tom'),
    array('id'=>2,'name'=>'Jack'),
    array('id'=>3,'name'=>'Lucy'),
);

$arr2 = array(
    array('id'=>2,'name'=>'Jack'),
    array('id'=>4,'name'=>'Mike'),
    array('id'=>5,'name'=>'Lily'),
);

$intersect = call_user_func_array('array_intersect', array_map(function($ar){return array_values($ar);},array($arr1, $arr2)));

var_dump($intersect);
Copier après la connexion

Le résultat de sortie est :

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(2)
    ["name"]=>
    string(4) "Jack"
  }
}
Copier après la connexion
Copier après la connexion

2 Utiliser des fonctions personnalisées

#🎜🎜. #En plus de la fonction intégrée, nous pouvons également utiliser des fonctions personnalisées pour implémenter la fonction d'intersection de tableaux bidimensionnels. Ce qui suit est une implémentation simple :

/**
 * 求二维数组交集
 * @param $arr1
 * @param $arr2
 * @return array
 */
function arr_intersect($arr1, $arr2){
    $intersect = array();
    foreach($arr1 as $value1){
        foreach($arr2 as $value2){
            if($value1 == $value2){
                $intersect[] = $value1;
                break;
            }
        }
    }
    return $intersect;
}

$arr1 = array(
    array('id'=>1,'name'=>'Tom'),
    array('id'=>2,'name'=>'Jack'),
    array('id'=>3,'name'=>'Lucy'),
);

$arr2 = array(
    array('id'=>2,'name'=>'Jack'),
    array('id'=>4,'name'=>'Mike'),
    array('id'=>5,'name'=>'Lily'),
);

$intersect = arr_intersect($arr1, $arr2);

var_dump($intersect);
Copier après la connexion
Le résultat de sortie est :

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(2)
    ["name"]=>
    string(4) "Jack"
  }
}
Copier après la connexion
Copier après la connexion
Summary

L'opération d'intersection de tableaux bidimensionnels dans la programmation PHP est très courant. En utilisant la fonction intégrée array_intersect() de PHP ou une fonction personnalisée, nous pouvons facilement implémenter la fonction d'intersection de tableaux bidimensionnels. Dans les projets réels, nous devons choisir la méthode optimale en fonction de scénarios spécifiques pour mettre en œuvre un algorithme d'intersection rapide et fiable.

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