Heim >Backend-Entwicklung >PHP-Problem >Ob ein Array ein bestimmtes Array php enthält
In PHP können wir Arrays auf verschiedene Arten manipulieren. Eine nützliche Operation besteht darin, zu überprüfen, ob ein Array ein anderes Array enthält. Dieser Vorgang kann in vielen Anwendungen verwendet werden, beispielsweise beim Durchlaufen eines mehrdimensionalen Arrays, um ein bestimmtes Element zu finden, oder beim Senden von Anforderungen und Antworten mithilfe einer RESTful-API.
Im Folgenden werden zwei Möglichkeiten vorgestellt, um zu überprüfen, ob ein Array ein anderes Array in PHP enthält.
Methode 1: Verwenden Sie die Funktion in_array()
die Funktion in_array() kann bestimmen, ob sich ein Wert in einem Array befindet. Daher können wir zunächst das gesuchte Array durchlaufen und dann mit der Funktion in_array() ermitteln, ob das Zielarray dieses Array enthält. Das Folgende ist ein Beispielcode:
function checkArrayExists($needle, $haystack) { // 遍历 $needle 数组 foreach ($needle as $value) { // 判断 $haystack 是否包含 $value if (!in_array($value, $haystack)) { return false; } } return true; } // 测试代码 $haystack = array('foo', 'bar', 'baz'); $needle1 = array('foo', 'baz'); $needle2 = array('foo', 'qux'); if (checkArrayExists($needle1, $haystack)) { echo 'needle1 is in haystack'; } else { echo 'needle1 is not in haystack'; } if (checkArrayExists($needle2, $haystack)) { echo 'needle2 is in haystack'; } else { echo 'needle2 is not in haystack'; }
Der obige Code definiert eine Funktion namens checkArrayExists(). In dieser Funktion verwenden wir die Funktion in_array(), um zu bestimmen, ob sich ein Wert im Zielarray befindet. und geben Sie dann die entsprechenden Ergebnisse zurück.
Beachten Sie, dass die Werte im überprüften Array genau übereinstimmen müssen, einschließlich des Datentyps.
Methode 2: Verwenden Sie die Funktion array_diff()
In PHP kann die Funktion array_diff() die Differenz zwischen zwei Arrays berechnen, also die Differenz zurückgeben, die nur erscheint in einem Array-Wert. Wenn die Differenz zwischen den beiden Arrays leer ist, bedeutet dies, dass die beiden Arrays genau übereinstimmen.
Daher können wir sowohl das zu findende Array als auch das Zielarray in Differenzmengen umwandeln und dann feststellen, ob ihre Differenzmengen leer sind. Das Folgende ist ein Beispielcode:
function checkArrayExists($needle, $haystack) { $diff = array_diff($needle, $haystack); if (count($diff) == 0) { return true; } return false; } // 测试代码 $haystack = array('foo', 'bar', 'baz'); $needle1 = array('foo', 'baz'); $needle2 = array('foo', 'qux'); if (checkArrayExists($needle1, $haystack)) { echo 'needle1 is in haystack'; } else { echo 'needle1 is not in haystack'; } if (checkArrayExists($needle2, $haystack)) { echo 'needle2 is in haystack'; } else { echo 'needle2 is not in haystack'; }
Der obige Code definiert eine Funktion namens checkArrayExists(). In dieser Funktion verwenden wir die Funktion array_diff(), um die Differenz zwischen zwei Arrays zu berechnen Der Differenzsatz ist leer und gibt dann das entsprechende Ergebnis zurück.
Welche Methode ist besser?
Beide Methoden sind effizient, um zu überprüfen, ob ein Array ein anderes Array enthält. In Bezug auf die Leistung ist Methode 2 jedoch mit der Funktion array_diff() effizienter, insbesondere beim Umgang mit großen Arrays. Daher sollte für große Arrays Methode 2 verwendet werden. Wenn die Größe des Arrays jedoch relativ klein ist, ist Methode 1 ausreichend und der Code ist prägnanter und klarer.
Zusammenfassend lässt sich sagen, dass das Verständnis dieser beiden Methoden es uns ermöglichen kann, Arrays effizienter zu betreiben und die Programmiereffizienz zu verbessern.
Das obige ist der detaillierte Inhalt vonOb ein Array ein bestimmtes Array php enthält. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!