Heim  >  Artikel  >  Backend-Entwicklung  >  So ermitteln Sie, ob ein Wert in einem Array in PHP vorhanden ist

So ermitteln Sie, ob ein Wert in einem Array in PHP vorhanden ist

PHPz
PHPzOriginal
2023-04-26 09:10:46623Durchsuche

Als in der Webentwicklung weit verbreitete Programmiersprache bietet PHP eine Fülle von Funktionen und Methoden zur Verarbeitung verschiedener Datentypen, einschließlich Arrays. Bei der Verwendung von Arrays ist es eine häufige Anforderung, festzustellen, ob ein bestimmter Wert im Array vorhanden ist. Wie implementiert man diese Funktion in PHP? In diesem Artikel werden Ihnen einige häufig verwendete Methoden vorgestellt.

in_array()-Funktion

PHP bietet eine in_array()-Funktion, mit der leicht ermittelt werden kann, ob ein Wert in einem Array vorhanden ist. Der Prototyp dieser Funktion lautet wie folgt:

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

Unter diesen stellt $needle den zu findenden Wert dar, $haystack stellt das zu findende Array dar, $strict stellt dar, ob der strikte Modus verwendet werden soll, und der Standardwert ist false. Wenn der Wert gefunden wird, geben Sie „true“ zurück; andernfalls geben Sie „false“ zurück.

Zum Beispiel haben wir ein Array $fruits mit dem Inhalt [„Apfel“, „Banane“, „Ananas“, „Orange“]. Um nun herauszufinden, ob der Wert „Banane“ darin vorhanden ist, können Sie das in_array verwenden ()-Funktion, Der Code lautet wie folgt:

$fruits = array("apple", "banana", "pineapple", "orange");
if (in_array("banana", $fruits)) {
    echo "该值已存在于数组中";
} else {
    echo "该值不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, wird „der Wert ist bereits im Array vorhanden“ ausgegeben, andernfalls wird „der“ ausgegeben Wert existiert nicht im Array".

Es ist zu beachten, dass die Funktion in_array() standardmäßig den nicht-strikten Modus verwendet, d. h. wenn der gefundene Wert nicht mit dem Datentyp eines Elements im Array übereinstimmt, wird er ebenfalls als vorhanden betrachtet. Wenn Sie den strikten Modus verwenden möchten, müssen Sie den Parameter $strict auf true setzen. Beispiel:

$numbers = array(1, 2, 3, "4");
if (in_array("4", $numbers, true)) {
    echo "该值已存在于数组中";
} else {
    echo "该值不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, wird das Array berücksichtigt, obwohl es ein Element mit einem Wert von 4 gibt, da es sich um einen Zeichenfolgentyp handelt und der zu findende Wert ein numerischer Typ ist im nicht strikten Modus Existiert nicht. Wenn der Parameter $strict auf true gesetzt ist, wird für die Suche der strikte Modus verwendet und die Meldung „Der Wert existiert nicht im Array“ wird ausgegeben.

array_search()-Funktion

Ähnlich der in_array()-Funktion bietet PHP auch eine weitere Funktion array_search(), die einen Wert in einem Array finden und den Index zurückgeben kann, in dem sich der Wert befindet. Der Prototyp dieser Funktion lautet wie folgt:

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )

Unter diesen stellt $needle den zu findenden Wert dar, $haystack stellt das zu findende Array dar, $strict stellt dar, ob der strikte Modus verwendet werden soll, und der Standardwert ist false. Wenn der Wert gefunden wird, wird der Index zurückgegeben, an dem sich der Wert befindet. Andernfalls wird false zurückgegeben.

Zum Beispiel haben wir ein Array $numbers mit dem Inhalt [1, 2, 3, 4, 5]. Nun wollen wir herausfinden, ob es ein Element mit dem Wert 4 gibt und den Index des Elements You ausgeben kann verwenden array_search() Funktion, der Code lautet wie folgt:

$numbers = array(1, 2, 3, 4, 5);
if (($key = array_search(4, $numbers)) !== false) {
    echo "该值存在于数组中,其下标为" . $key;
} else {
    echo "该值不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, wird, wenn ein Element mit einem Wert von 4 gefunden wird, ausgegeben: „Dieser Wert existiert im Array und seinem Index.“ ist 3“; andernfalls wird im Array „Dieser Wert existiert nicht im Array“ ausgegeben.

Es sollte auch beachtet werden, dass die Funktion array_search() auch den nicht-strikten Modus zum Suchen verwendet. Wenn Sie den strikten Modus verwenden möchten, müssen Sie den Parameter $strict auf true setzen. Beispiel:

$numbers = array(1, 2, 3, "4", 5);
if (($key = array_search("4", $numbers, true)) !== false) {
    echo "该值存在于数组中,其下标为" . $key;
} else {
    echo "该值不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, kann im nicht-strikten Modus das Element mit dem Wert „4“ gefunden werden und die Ausgabe „Dieser Wert existiert im Array und sein Index ist 3“ erfolgt. Da im strikten Modus der zu findende Wert vom Typ Zeichenfolge ist und der Wert des Elements im Array vom numerischen Typ ist und nicht abgeglichen werden kann, wird „Der Wert ist im Array nicht vorhanden“ ausgegeben.

isset()- und array_key_exists()-Funktionen

Zusätzlich zu den beiden oben genannten Funktionen können Sie auch die isset()- und array_key_exists()-Funktionen verwenden, um zu bestimmen, ob ein Schlüssel oder ein Index im Array vorhanden ist. Die Funktion

isset() kann erkennen, ob eine Variable gesetzt wurde und nicht null ist. Wenn die Variable festgelegt wurde und nicht null ist, wird „true“ zurückgegeben; andernfalls wird „false“ zurückgegeben. Wenn Sie überprüfen, ob ein Schlüssel in einem Array vorhanden ist, können Sie die Funktion isset() verwenden. Zum Beispiel:

$person = array("name" => "Tom", "age" => 20);
if (isset($person["name"])) {
    echo "该键存在于数组中";
} else {
    echo "该键不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, wird ausgegeben, wenn ein Element mit dem Schlüssel „Name“ vorhanden ist: „Der Schlüssel ist im Array vorhanden“. Andernfalls wird „Der Schlüssel existiert nicht“ ausgegeben im Array".

Es ist zu beachten, dass die Funktion isset() bei der Erkennung nicht vorhandener Array-Elemente „false“ zurückgibt, ohne eine Warnung auszulösen. Zum Beispiel:

$numbers = array(1, 2, 3, 4, 5);
if (isset($numbers[5])) {
    echo "该下标存在于数组中";
} else {
    echo "该下标不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, wird „Der Index existiert nicht im Array“ ausgegeben, da das Element mit dem Index 5 nicht im Array vorhanden ist.

Ähnlich wie die Funktion isset() kann auch die Funktion array_key_exists() erkennen, ob ein Schlüssel in einem Array vorhanden ist. Der Prototyp dieser Funktion lautet wie folgt:

bool array_key_exists ( mixed $key , array $array )

Unter diesen stellt $key den zu durchsuchenden Schlüssel und $array das zu durchsuchende Array dar. Wenn der Schlüssel gefunden wird, wird „true“ zurückgegeben, andernfalls „false“.

Zum Beispiel haben wir ein Array $person mit dem Inhalt ["name" => "Tom", "age" => 20]. Nun wollen wir herausfinden, ob darin ein Element mit dem Schlüssel "name" vorhanden ist , und ausgeben, ob existiert, können Sie die Funktion array_key_exists() verwenden, der Code lautet wie folgt:

$person = array("name" => "Tom", "age" => 20);
if (array_key_exists("name", $person)) {
    echo "该键存在于数组中";
} else {
    echo "该键不存在于数组中";
}

Wie aus dem obigen Code ersichtlich ist, wird, wenn es ein Element mit dem Schlüssel „name“ gibt, „the“ ausgegeben Schlüssel existiert im Array“; andernfalls wird die Ausgabe „Der Schlüssel existiert nicht im Array“ ausgegeben.

Fazit

Kurz gesagt ist die Beurteilung, ob ein bestimmter Wert oder Schlüssel in einem Array vorhanden ist, eine häufige Operation in PHP und auch sehr einfach zu implementieren. Zusätzlich zu den oben vorgestellten Methoden gibt es viele andere Funktionen und Methoden, die diese Funktion erreichen können. Bei der Verwendung können Sie entsprechend der tatsächlichen Situation die am besten geeignete Methode auswählen, um die Effizienz und Lesbarkeit des Programms zu verbessern.

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