Heim > Backend-Entwicklung > PHP-Problem > Hat das PHP-Array einen Schnittpunkt?

Hat das PHP-Array einen Schnittpunkt?

PHPz
Freigeben: 2023-05-19 15:29:38
Original
691 Leute haben es durchsucht

Ob PHP-Arrays Schnittpunkte haben?

In PHP müssen Sie manchmal einige Operationen an Arrays ausführen. Eine der häufigsten Operationen besteht darin, zu bestimmen, ob zwei Arrays Schnittpunkte haben. Wenn sich zwei Arrays überschneiden, haben sie mindestens ein gemeinsames Element. Dieser Vorgang kommt in der tatsächlichen Entwicklung sehr häufig vor. Beispielsweise muss im Benutzerregistrierungssystem festgestellt werden, ob die vom Benutzer eingegebene E-Mail-Adresse von anderen Benutzern registriert wurde feststellen, ob ein bestimmtes Produkt durch andere Bestellungen gekauft wurde.

In PHP gibt es viele Möglichkeiten, festzustellen, ob sich zwei Arrays überschneiden. In diesem Artikel werden einige davon vorgestellt.

  1. array_intersect-Funktion

PHP stellt die array_intersect-Funktion zur Verfügung, mit der die Schnittmenge von zwei oder mehr Arrays verglichen werden kann. Die Verwendung ist wie folgt:

$array1 = array('a', 'b', 'c', 'd');
$array2 = array('c', 'd', 'e', 'f');

$result = array_intersect($array1, $array2);

print_r($result);
Nach dem Login kopieren

Die Ausgabe lautet wie folgt:

Array
(
    [2] => c
    [3] => d
)
Nach dem Login kopieren

Diese Funktion gibt ein Array zurück, dessen Elemente die Schnittmenge der beiden Eingabearrays sind. In diesem Beispiel ist der Schnittpunkt der Eingabearrays $array1 und $array2 das Array array('c', 'd') .

  1. array_intersect_key-Funktion

Zusätzlich zur array_intersect-Funktion stellt PHP auch die array_intersect_key-Funktion zur Verfügung. Im Gegensatz zur Funktion array_intersect vergleicht die Funktion array_intersect_key die Schlüsselwerte des Arrays und nicht die Werte selbst. Seine Verwendung ist wie folgt:

$array1 = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$array2 = array('c' => 3, 'd' => 4, 'e' => 5, 'f' => 6);

$result = array_intersect_key($array1, $array2);

print_r($result);
Nach dem Login kopieren

Die Ausgabe ist wie folgt:

Array
(
    [c] => 3
    [d] => 4
)
Nach dem Login kopieren
Nach dem Login kopieren

Diese Funktion gibt ein Array zurück, dessen Elemente die Schnittmenge der Schlüssel der beiden Eingabearrays sind. In diesem Beispiel ist der Schnittpunkt der Schlüssel der Eingabearrays $array1 und $array2 das Array array('c' => 3, 'd' => 4) .

  1. Zwei foreach-Schleifen

Eine andere Methode besteht darin, zwei foreach-Schleifen zu verwenden, um die Werte der beiden Arrays zu vergleichen. Seine Verwendung ist wie folgt:

$array1 = array('a', 'b', 'c', 'd');
$array2 = array('c', 'd', 'e', 'f');

$result = false;

foreach ($array1 as $value1) {
    foreach ($array2 as $value2) {
        if ($value1 == $value2) {
            $result = true;
            break 2;
        }
    }
}

if ($result) {
    echo '两个数组有交集';
} else {
    echo '两个数组没有交集';
}
Nach dem Login kopieren

Im obigen Code setzen wir zunächst den Wert von $result auf false , was angibt, dass die beiden Arrays keinen Schnittpunkt haben. Verwenden Sie dann zwei foreach-Schleifen, um die beiden Arrays zu durchlaufen. Wenn dieselben Elemente gefunden werden, setzen Sie den Wert von $result auf true und verwenden Sie die break 2-Anweisung, um aus den beiden Schleifen zu springen. Abschließend wird das Ergebnis basierend auf dem Wert von $result ausgegeben.

  1. array_intersect_ukey-Funktion

Zusätzlich zu den oben vorgestellten Funktionen stellt PHP auch die array_intersect_ukey-Funktion zur Verfügung. Ähnlich wie die Funktion array_intersect_key vergleicht die Funktion array_intersect_ukey die Schlüsselwerte des Arrays, erfordert jedoch die Übergabe einer zusätzlichen Rückruffunktion zum Vergleich der beiden Schlüssel. Seine Verwendung ist wie folgt:

$array1 = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$array2 = array('C' => 3, 'D' => 4, 'e' => 5, 'f' => 6);

$result = array_intersect_ukey($array1, $array2, 'strcasecmp');

print_r($result);
Nach dem Login kopieren

Die Ausgabe ist wie folgt:

Array
(
    [c] => 3
    [d] => 4
)
Nach dem Login kopieren
Nach dem Login kopieren

Diese Funktion gibt ein Array zurück, dessen Elemente die Schnittmenge der Schlüssel der beiden Eingabearrays sind. In diesem Beispiel ist der Schnittpunkt der Schlüssel der Eingabearrays $array1 und $array2 das Array array('c' => 3, 'd' => 4) . Beachten Sie, dass wir eine Rückruffunktion „strcasecmp“ übergeben haben, die zum Vergleichen von Schlüsseln ohne Berücksichtigung der Groß- und Kleinschreibung verwendet wird.

Zusammenfassung

In diesem Artikel werden verschiedene Methoden in PHP vorgestellt, um festzustellen, ob sich zwei Arrays überschneiden, darunter array_intersect, array_intersect_key, zwei foreach-Schleifen und die Funktion array_intersect_ukey. In der tatsächlichen Entwicklung können wir je nach Situation die geeignete Methode auswählen, um die beste Leistung und Effizienz zu erzielen.

Das obige ist der detaillierte Inhalt vonHat das PHP-Array einen Schnittpunkt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage