Heim  >  Artikel  >  Backend-Entwicklung  >  Bestimmen Sie, ob sich mehrere Elemente in einem PHP-Array befinden

Bestimmen Sie, ob sich mehrere Elemente in einem PHP-Array befinden

WBOY
WBOYOriginal
2023-05-11 10:23:06751Durchsuche

In PHP wird häufig ermittelt, ob sich mehrere Elemente in einem Array befinden. In diesem Artikel wird erläutert, wie diese Funktion implementiert wird.

Methode 1: Verwenden Sie die Funktion „in_array“

die Funktion „in_array“ kann ermitteln, ob sich ein Element in einem Array befindet:

bool in_array ( gemischt $needle , array $haystack [, bool $strict = FALSE ] )

Es ist ersichtlich, dass diese Funktion drei Parameter hat, der erste Parameter stellt das Zielelement dar und der zweite Parameter stellt welches dar Array, in dem es sich in „Suchen in“ befindet, gibt der dritte Parameter an, ob der strikte Modus aktiviert ist. Standardmäßig ist der strikte Modus nicht aktiviert.

Daher können wir die Funktion in_array verwenden, um durch eine Schleife zu bestimmen, ob sich mehrere Elemente im Array befinden. Der Beispielcode lautet wie folgt:

<?php
$needleArr = ['element1', 'element2', 'element3'];
$haystackArr = ['element1', 'element3', 'element4', 'element5'];

foreach ($needleArr as $needle) {
    if (in_array($needle, $haystackArr)) {
        echo "$needle is in haystack array 
";
    } else {
        echo "$needle is NOT in haystack array 
";
    }
}

Das Ausgabeergebnis ist:

element1 is in haystack array
element2 is NOT in haystack array
element3 is in haystack array

Im obigen Code definieren wir zunächst ein Zielarray $needleArr und ein zu durchsuchendes Array $haystackArr und verwenden Sie dann die foreach-Schleife, um zu bestimmen, ob sich jedes Element in $needleArr in $haystackArr existiert und gibt schließlich das Beurteilungsergebnis aus. $needleArr 和一个待搜索的数组 $haystackArr,然后通过 foreach 循环依次判断 $needleArr 中的每个元素是否在 $haystackArr 中存在,最终输出判断结果。

需要注意的是,in_array 函数默认不启用严格模式,即将元素转换为字符串来进行比较。如果需要启用严格模式,可将第三个参数设为 true,如下所示:

in_array($needle, $haystackArr, true);

方法二:使用 array_intersect 函数

array_intersect 函数可比较多个数组,找出它们共同的元素,具体语法如下:

array array_intersect ( array $array1 , array $array2 [, array $... ] )

该函数可比较多个数组,其中第一个参数表示第一个数组,第二个参数表示第二个数组,依次类推。

因此,我们也可以利用 array_intersect 函数,将多个数组传入其中,找出它们的交集,如果交集不为空,则说明数组中存在指定元素。示例代码如下:

<?php
$needleArr = ['element1', 'element2', 'element3'];
$haystackArr = ['element1', 'element3', 'element4', 'element5'];

$intersectArr = array_intersect($needleArr, $haystackArr);
if (!empty($intersectArr)) {
    echo "There are some elements in the haystack array 
";
} else {
    echo "No elements in the haystack array 
";
}

输出结果为:

There are some elements in the haystack array

上述代码中,我们先定义了一个目标数组 $needleArr 和一个待搜索的数组 $haystackArr,然后将它们传入 array_intersect 函数中,如果返回的交集不为空,则说明数组中存在指定元素。

需要注意的是,array_intersect 函数会保留原始数组中的键,因此它返回的数组不一定是连续的,具体取决于原始数组的键是否连续。如果需要保留键值关系,可使用 array_intersect_assoc 函数。

方法三:使用 array_diff 函数

array_diff 函数可比较多个数组,找出它们的差集,具体语法如下:

array array_diff ( array $array1 , array $array2 [, array $... ] )

该函数可比较多个数组,其中第一个参数表示第一个数组,第二个参数表示第二个数组,依次类推。

因此,我们也可以利用 array_diff 函数,将多个数组传入其中,找出它们的差集,如果差集等于原始数组,则说明数组中存在指定元素。示例代码如下:

<?php
$needleArr = ['element1', 'element2', 'element3'];
$haystackArr = ['element1', 'element3', 'element4', 'element5'];

$diffArr = array_diff($needleArr, $haystackArr);
if ($diffArr !== $needleArr) {
    echo "There are some elements in the haystack array 
";
} else {
    echo "No elements in the haystack array 
";
}

输出结果为:

There are some elements in the haystack array

上述代码中,我们先定义了一个目标数组 $needleArr 和一个待搜索的数组 $haystackArr

Es ist zu beachten, dass die Funktion in_array standardmäßig keinen strikten Modus aktiviert, d. h. die Elemente werden zum Vergleich in Zeichenfolgen konvertiert. Wenn Sie den strikten Modus aktivieren müssen, können Sie den dritten Parameter wie unten gezeigt auf true setzen:

rrreee

Methode 2: Verwenden Sie die Funktion array_intersect #🎜🎜##🎜🎜#funktion array_intersect kann mehrere vergleichen Arrays, finden Sie ihre gemeinsamen Elemente. Die spezifische Syntax lautet wie folgt: #🎜🎜##🎜🎜#array array_intersect ( array $array1 , array $array2 [, array $... ] ) #🎜🎜##🎜🎜#This Die Funktion kann mehrere Arrays vergleichen, wobei der erste Parameter das erste Array, der zweite Parameter das zweite Array usw. darstellt. #🎜🎜##🎜🎜# Daher können wir auch die Funktion array_intersect verwenden, um mehrere Arrays zu übergeben und deren Schnittmenge zu ermitteln. Wenn die Schnittmenge nicht leer ist, bedeutet dies, dass das angegebene Element im Array vorhanden ist. Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis ist: #🎜🎜#rrreee#🎜🎜#Im obigen Code definieren wir zunächst ein Zielarray $needleArr und ein zu durchsuchendes Array $haystackArr und übergeben Sie diese dann an die Funktion array_intersect. Wenn der zurückgegebene Schnittpunkt nicht leer ist, bedeutet dies, dass das angegebene Element im Array vorhanden ist. #🎜🎜##🎜🎜#Es ist zu beachten, dass die Funktion array_intersect die Schlüssel im ursprünglichen Array beibehält, sodass das zurückgegebene Array nicht unbedingt kontinuierlich ist, je nachdem, ob die Schlüssel des ursprünglichen Arrays kontinuierlich sind. Wenn Sie Schlüssel-Wert-Beziehungen beibehalten müssen, können Sie die Funktion array_intersect_assoc verwenden. #🎜🎜##🎜🎜#Methode 3: Mit der Funktion array_diff #🎜🎜##🎜🎜#array_diff können mehrere Arrays verglichen und ihre Unterschiede ermittelt werden. Die spezifische Syntax lautet wie folgt: #🎜🎜##🎜🎜#array array_diff ( array $array1 , array $array2 [, array $... ] ) #🎜🎜##🎜🎜#Diese Funktion kann mehrere Arrays vergleichen, wobei der erste Parameter das erste Array und der zweite Parameter das zweite Array darstellt, und so weiter. #🎜🎜##🎜🎜# Daher können wir auch die Funktion array_diff verwenden, um mehrere Arrays zu übergeben und deren Differenz zu ermitteln. Wenn die Differenz dem ursprünglichen Array entspricht, bedeutet dies, dass das angegebene Element im Array vorhanden ist. Der Beispielcode lautet wie folgt: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis ist: #🎜🎜#rrreee#🎜🎜#Im obigen Code definieren wir zunächst ein Zielarray $needleArr und ein zu durchsuchendes Array $haystackArr und übergeben Sie diese dann an die Funktion array_diff. Wenn der zurückgegebene Differenzsatz nicht mit dem ursprünglichen Array übereinstimmt, bedeutet dies, dass das angegebene Element im Array vorhanden ist . #🎜🎜##🎜🎜#Es ist zu beachten, dass die Funktion array_diff ein Array von Elementen zurückgibt, die im ersten Array, jedoch nicht in anderen Arrays vorhanden sind. Wenn also das erste Array selbst das Zielelement nicht enthält, hat die obige Methode keine Auswirkung. #🎜🎜#

Das obige ist der detaillierte Inhalt vonBestimmen Sie, ob sich mehrere Elemente in einem PHP-Array befinden. 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