Heim > Artikel > Backend-Entwicklung > Finden Sie den Schnittpunkt zweidimensionaler Arrays in PHP
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!