Maison >développement back-end >Problème PHP >Trouver l'intersection de tableaux bidimensionnels en php

Trouver l'intersection de tableaux bidimensionnels en php

WBOY
WBOYoriginal
2023-05-07 17:47:081063parcourir

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

Le résultat de sortie est :

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(2)
    ["name"]=>
    string(4) "Jack"
  }
}

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);
Le résultat de sortie est :

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(2)
    ["name"]=>
    string(4) "Jack"
  }
}
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!

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