Heim >Backend-Entwicklung >PHP-Problem >Bestimmen Sie, ob sich mehrere Elemente in einem PHP-Array befinden
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
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!