Heim > Backend-Entwicklung > PHP-Problem > So ermitteln Sie, ob ein Array in einem anderen Array in PHP enthalten ist

So ermitteln Sie, ob ein Array in einem anderen Array in PHP enthalten ist

PHPz
Freigeben: 2023-04-24 15:39:01
Original
3060 Leute haben es durchsucht

Bei der PHP-Entwicklung müssen wir oft feststellen, ob ein Array in einem anderen Array enthalten ist. Diese Situation kommt sowohl bei der Datenverarbeitung als auch bei der Logikverarbeitung sehr häufig vor. In diesem Artikel werden verschiedene Methoden vorgestellt, damit Entwickler basierend auf der tatsächlichen Situation die am besten geeignete Methode auswählen können, um festzustellen, ob ein Array in einem anderen Array enthalten ist.

Methode 1: Verwenden Sie die Funktion array_diff.

Die Funktion array_diff ist eine in PHP integrierte Funktion, die zum Vergleichen zweier Arrays und zum Zurückgeben der Differenz verwendet wird. Da nur die Differenzmenge zurückgegeben wird, können wir feststellen, ob ein Array in einem anderen Array enthalten ist, indem wir feststellen, ob die Differenzmenge ein leeres Array ist. Das Folgende ist ein Beispielcode:

$array1 = [1, 2, 3, 4, 5];
$array2 = [1, 2, 3];

// 比较两个数组并返回差集
$diff = array_diff($array2, $array1);

if (empty($diff)) {
    echo "array2 包含于 array1 中";
} else {
    echo "array2 不包含于 array1 中";
}
Nach dem Login kopieren

Im obigen Code werden zunächst zwei Arrays $array1 und $array2 definiert, eine Teilmenge, die in $array1 enthalten ist. Verwenden Sie dann die Funktion array_diff, um den Differenzsatz zu berechnen, und bestimmen Sie mit der leeren Funktion, ob der Differenzsatz ein leeres Array ist, und geben Sie schließlich das Ergebnis aus.

Methode 2: Verwenden Sie die Funktion array_intersect

Ähnlich wie die Funktion array_diff ist auch die Funktion array_intersect eine in PHP integrierte Funktion, die zum Vergleichen zweier Arrays und zum Zurückgeben der Schnittmenge verwendet wird. Der Unterschied besteht darin, dass array_intersect den Schnittpunkt zurückgibt, der bestimmen kann, ob ein Array in einem anderen Array enthalten ist. Das Folgende ist ein Beispielcode:

$array1 = [1, 2, 3, 4, 5];
$array2 = [1, 2, 3];

// 比较两个数组并返回交集
$intersect = array_intersect($array2, $array1);

if ($intersect == $array2) {
    echo "array2 包含于 array1 中";
} else {
    echo "array2 不包含于 array1 中";
}
Nach dem Login kopieren

Im obigen Code werden zunächst zwei Arrays $array1 und $array2 definiert, eine Teilmenge, die in $array1 enthalten ist. Verwenden Sie dann die Funktion array_intersect, um den Schnittpunkt zu berechnen. Durch Beurteilen, ob der Schnittpunkt gleich $ array2 ist, wird das Endergebnis ausgegeben.

Methode 3: Verwenden Sie die Funktion in_array

Die Funktion in_array ist eine in PHP integrierte Funktion, mit der überprüft wird, ob ein Wert in einem Array vorhanden ist. Wir können prüfen, ob jedes Element im Array $array2 in $array1 vorhanden ist. Wenn jedes Element in $array1 vorhanden ist, kann man sagen, dass $array2 eine Teilmenge von $array1 ist. Das Folgende ist ein Beispielcode:

$array1 = [1, 2, 3, 4, 5];
$array2 = [1, 2, 3];

$flag = true;

// 检查 $array2 中的每个元素是否存在于 $array1 中
foreach ($array2 as $value) {
    if (!in_array($value, $array1)) {
        $flag = false;
        break;
    }
}

if ($flag) {
    echo "array2 包含于 array1 中";
} else {
    echo "array2 不包含于 array1 中";
}
Nach dem Login kopieren

Im obigen Code werden zunächst zwei Arrays $array1 und $array2 definiert, eine Teilmenge, die in $array1 enthalten ist. Anschließend durchlaufen Sie jedes Element in $array2 mit foreach und prüfen mithilfe der Funktion in_array, ob das Element in $array1 vorhanden ist. Wenn jedes Element in $array1 vorhanden ist, wird $flag true zugewiesen, andernfalls wird ihm false zugewiesen. Abschließend wird das Ergebnis basierend auf dem Wert von $flag ausgegeben.

Methode 4: Verwenden Sie die Funktion array_intersect_key

Die Funktion array_intersect_key ist eine in PHP integrierte Funktion, die zum Vergleichen der Schlüssel zweier Arrays und zum Zurückgeben der Schnittmenge verwendet wird. Mit der Funktion array_intersect_key können wir ermitteln, ob die Schlüssel eines Arrays alle in einem anderen Array vorhanden sind. Falls vorhanden, wird davon ausgegangen, dass das Array in einem anderen Array enthalten ist. Das Folgende ist ein Beispielcode:

$array1 = ['a'=>1, 'b'=>2, 'c'=>3, 'd'=>4, 'e'=>5];
$array2 = ['a'=>1, 'b'=>2, 'c'=>3];

// 比较两个数组的键并返回交集
$intersect = array_intersect_key($array2, $array1);

if ($intersect == $array2) {
    echo "array2 包含于 array1 中";
} else {
    echo "array2 不包含于 array1 中";
}
Nach dem Login kopieren

Im obigen Code werden zunächst zwei assoziative Arrays $array1 und $array2 definiert. $array2 ist eine Teilmenge, die in $array1 enthalten ist. Verwenden Sie dann die Funktion array_intersect_key, um den Schnittpunkt der Schlüssel zu berechnen, festzustellen, ob der Schnittpunkt gleich $ array2 ist, und geben Sie schließlich das Ergebnis aus.

Zusammenfassung

In diesem Artikel werden vier Methoden vorgestellt, um festzustellen, ob ein Array in einem anderen Array enthalten ist. Unter diesen sind die Verwendung der Funktionen array_diff und array_intersect die gebräuchlichsten und einfacheren Methoden. Die Verwendung der Funktionen in_array und array_intersect_key ist präziser und ermöglicht eine flexible Bestimmung des Inhalts des Arrays.

Wenn das zu beurteilende Array groß ist, wird empfohlen, die beiden letztgenannten Methoden zu verwenden, da die Funktionen array_diff und array_intersect Auswirkungen auf die Leistung großer Arrays haben können. Gleichzeitig können Entwickler diese Methoden auch umfassend auf der Grundlage tatsächlicher Bedingungen nutzen, um die besten Ergebnisse zu erzielen.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob ein Array in einem anderen Array in PHP enthalten ist. 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