Heim  >  Artikel  >  Backend-Entwicklung  >  Finden Sie den Schnittpunkt zweidimensionaler Arrays in PHP

Finden Sie den Schnittpunkt zweidimensionaler Arrays in PHP

WBOY
WBOYOriginal
2023-05-07 17:47:081000Durchsuche

In der PHP-Programmierung sind zweidimensionale Arrays eine der am häufigsten verwendeten Datenstrukturen. Eine der am häufigsten verwendeten Operationen für zweidimensionale Arrays ist das Finden von Schnittpunkten. Wie findet man also den Schnittpunkt zweidimensionaler Arrays in PHP? Werfen wir einen Blick auf die konkrete Implementierung.

1. Verwenden Sie die Funktion array_intersect

PHP bietet eine integrierte Funktion array_intersect(), mit der der Schnittpunkt zweier Arrays ermittelt werden kann. Diese Funktion kann mehrere Arrays als Parameter akzeptieren. Bei zweidimensionalen Arrays müssen Sie die Funktion array_map verwenden, um das assoziative Array in ein Indexarray umzuwandeln.

Der Beispielcode lautet wie folgt:

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

Das Ausgabeergebnis ist:

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

2. Benutzerdefinierte Funktionen verwenden

Zusätzlich zu den integrierten Funktionen können wir auch benutzerdefinierte Funktionen verwenden, um die Schnittfunktion von zweidimensionalen zu implementieren Arrays. Das Folgende ist eine einfache Implementierung:

/**
 * 求二维数组交集
 * @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);

Das Ausgabeergebnis ist:

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

Zusammenfassung

Die Schnittoperation zweidimensionaler Arrays ist in der PHP-Programmierung sehr verbreitet. Durch die Verwendung der in PHP integrierten Funktion array_intersect() oder einer benutzerdefinierten Funktion können wir die Schnittfunktion zweidimensionaler Arrays einfach implementieren. In tatsächlichen Projekten sollten wir die optimale Methode entsprechend bestimmten Szenarien auswählen, um einen schnellen und zuverlässigen Schnittalgorithmus zu implementieren.

Das obige ist der detaillierte Inhalt vonFinden Sie den Schnittpunkt zweidimensionaler Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn