Aktueller Standort: Startseite> Neueste Artikel> Eine effiziente Kombination von Array_Column und In_array fragt, ob ein Wert vorhanden ist

Eine effiziente Kombination von Array_Column und In_array fragt, ob ein Wert vorhanden ist

M66 2025-04-28

In PHP sind Array_Column und IN_Array zwei häufig verwendete Funktionen, die zum Extrahieren einer Spalte in einem Array verwendet werden, und um zu überprüfen, ob ein Wert in einem Array vorhanden ist. Die Verwendung dieser beiden Funktionen in Kombination kann effektiv abfragen, ob ein Wert in einem mehrdimensionalen Array existiert.

1. Einführung in die Funktion array_column

Die Funktion array_column wird verwendet, um den Wert einer Spalte aus einem mehrdimensionalen Array zu extrahieren und ein neues Array zurückzugeben, das die Werte dieser Spalte enthält. Die grundlegende Verwendung dieser Funktion ist wie folgt:

 array_column($array, $column_key, $index_key);
  • $ Array : Das multidimensionale Eingangsarray.

  • $ column_key : Der Spaltenname oder der Index der Spalte, die Sie extrahieren möchten.

  • $ index_key (optional): Wenn Sie möchten, dass das zurückgegebene Array mit einem Index gekennzeichnet ist, können Sie diesen Parameter übergeben.

2. Einführung in die Funktion In_array

Mit der IN_Array -Funktion wird überprüft, ob in einem Array ein Wert vorhanden ist. Es gibt true zurück, wenn der Wert existiert, andernfalls gibt es falsche zurück. Seine Verwendung ist wie folgt:

 in_array($needle, $haystack, $strict);
  • $ nadel : Der Wert zu finden.

  • $ haystack : Das Array wird durchsucht.

  • $ strict (optional): Wenn in true festgelegt wird, führt IN_Array strenge Vergleiche durch (d. H. Überprüfen Sie nicht nur, ob der Wert vorhanden ist, sondern auch, ob der Datentyp übereinstimmt).

3.. Verwenden Sie Array_Column und In_array in Kombination

Wir verwenden Array_Column und IN_Array, um effizient herauszufinden, ob in einer bestimmten Spalte in einem mehrdimensionalen Array ein Wert vorhanden ist. Angenommen, wir haben eine Reihe mehrerer Benutzerinformationen und möchten überprüfen, ob ein Benutzername vorhanden ist.

Angenommen, es gibt das folgende Array:

 $users = [
    ['id' => 1, 'name' => 'Tom', 'email' => 'tom@m66.net'],
    ['id' => 2, 'name' => 'Jerry', 'email' => 'jerry@m66.net'],
    ['id' => 3, 'name' => 'Spike', 'email' => 'spike@m66.net'],
];

Wir möchten überprüfen, ob der Benutzername Jerry im Array existiert. Sie können die folgenden Schritte ausführen:

  1. Verwenden Sie Array_Column , um die Spalte des Namens zu extrahieren.

  2. Verwenden Sie IN_Array , um zu überprüfen, ob der Benutzername im extrahierten Array vorhanden ist.

 $names = array_column($users, 'name');  // Alle Benutzernamen extrahieren
$user_exists = in_array('Jerry', $names);  // prüfen 'Jerry' Existiert es?

if ($user_exists) {
    echo "Benutzer Jerry existieren";
} else {
    echo "Benutzer Jerry 不existieren";
}

4.. Komplexere Fragen

Manchmal befragen wir nicht nur einen einfachen Wert, sondern müssen auch basierend auf mehreren Bedingungen prüfen. Durch Kombination von Array_Column und In_array können wir bestimmte Werte in bestimmten Spalten finden. Diese Methode ist bei der Verarbeitung großer Datensätze sehr effizient und vermieden den mühsamen Betrieb manuell durch das Durchqueren von mehrdimensionalen Arrays.

Wenn wir beispielsweise überprüfen möchten, ob eine bestimmte E -Mail -Adresse vorliegt:

 $emails = array_column($users, 'email');  // 提取所有Benutzer的Post
$email_exists = in_array('jerry@m66.net', $emails);  // prüfenPostExistiert es?

if ($email_exists) {
    echo "Post jerry@m66.net existieren";
} else {
    echo "Post jerry@m66.net 不existieren";
}

5. Leistungsüberlegungen

In PHP sind Array_Column und IN_Array relativ effiziente Funktionen, insbesondere im Umgang mit größeren Arrays. Durch die direkte Verwendung von IN_Array , um nach mehrdimensionalen Arrays zu suchen, durchquert das gesamte Array, was weniger effizient ist. Wenn Sie zuerst Array_Column verwenden, um die Zielspalte zu extrahieren und dann in IN_Array zum Suchen zu verwenden, können unnötige Vergleichsvorgänge reduziert und die Leistung verbessert werden.

Zusammenfassen

Die Verwendung von Array_Column und IN_Array in Kombination ist eine sehr effiziente Art und Weise, insbesondere geeignet, um festzustellen, ob ein Wert in einem mehrdimensionalen Array vorhanden ist. Wenn Sie zuerst die erforderlichen Spalten extrahieren und anschließend In_array verwenden, um zu prüfen, ob der Zielwert besteht, können Sie die Abfrageeffizienz verbessern und die Komplexität Ihres Codes verringern. Dieser Ansatz kann die Leistung bei der Verarbeitung größerer Datensätze erheblich verbessern.