Heim > Backend-Entwicklung > PHP-Tutorial > So suchen Sie in einem assoziativen PHP-Array – schnelle Tipps

So suchen Sie in einem assoziativen PHP-Array – schnelle Tipps

WBOY
Freigeben: 2024-08-15 18:32:37
Original
833 Leute haben es durchsucht

Assoziative Arrays sind eine grundlegende Datenstruktur in PHP, die es Entwicklern ermöglicht, Schlüssel-Wert-Paare zu speichern. Sie sind vielseitig und werden häufig zur Darstellung strukturierter Daten verwendet. Die Suche nach bestimmten Elementen innerhalb eines assoziativen PHP-Arrays ist eine häufige Aufgabe. Aber die meisten nativen Funktionen, die in PHP verfügbar sind, funktionieren hervorragend mit einfachen Arrays.

Aus diesem Grund müssen wir oft Kombinationen von Funktionen finden, die es uns ermöglichen, dasselbe auf assoziativen Arrays zu tun. Möglicherweise ohne Fehler wegen unzureichendem Arbeitsspeicher?.

In diesem Tutorial werden wir verschiedene Methoden und Techniken zur Suche nach Werten in einem assoziativen PHP-Array untersuchen.

Suche nach einem Schlüssel in einem assoziativen Array

Die Funktion array_key_exists() prüft, ob ein bestimmter Schlüssel in einem assoziativen Array vorhanden ist. Es gibt true zurück, wenn der Schlüssel gefunden wird, andernfalls false.

$fruits = [
    'apple' => 'red',
    'banana' => 'yellow',
];

if (array_key_exists('banana', $fruits)) {
    echo "The key 'banana' exists in the array.";
} else {
    echo "The key 'banana' does not exist in the array.";
}
Nach dem Login kopieren

Suche nach Wert in einem assoziativen Array

Verwenden von array_search() und in_array()

Die Funktion array_search() sucht nach einem Wert in einem assoziativen Array und gibt den entsprechenden Schlüssel zurück, wenn er gefunden wird, oder false, wenn er nicht gefunden wird.

$colors = [
    'apple' => 'red',
    'banana' => 'yellow',
];

echo array_search('yellow', $colors); // Print "banana"
Nach dem Login kopieren

Sie können auch Arrays mit komplexeren Daten als Wert verwenden:

$colors = [
    'apple' => ['red'],
    'banana' => 'yellow',
];

echo array_search(['red'], $colors); // Print "apple"
Nach dem Login kopieren

In diesem Fall empfehle ich Ihnen, den strengen Vergleichsmodus zu verwenden. Es kann angefordert werden, dass ein dritter boolescher Parameter an array_search:
übergeben wird

echo array_search(['red'], $colors, true);
Nach dem Login kopieren

Ähnlich wie array_search() ist die in_array-Funktion, die lediglich ein boolesches Flag anstelle des Schlüssels des Elements zurückgibt.

/*
 * It also supports strict mode comparison, useful for working with structured data as a value.
 */
echo in_array(['red'], $colors, true); // Return "true"
Nach dem Login kopieren

Verwenden einer foreach-Schleife

Sie können das assoziative Array mithilfe einer foreach-Schleife durchlaufen und manuell nach einem bestimmten Wert suchen. Dies ist nützlich, wenn Sie komplexe Vergleiche oder Manipulationen durchführen müssen, da sich die Schleife im selben Bereich des Arrays befindet, sodass Sie Zugriff auf alle Daten in der Schleife haben.

$targetValue = 'yellow';

foreach ($colors as $key => $value) {
    if ($value === $targetValue) {
        echo "The value {$targetValue} is associated with the key {$key}.";
        break; // Optional: Stop searching after finding the occurrence.
    }
}
Nach dem Login kopieren

Verwenden von array_filter()

Die Funktion array_filter() kann verwendet werden, um das Array zu filtern und nur Elemente zurückzugeben, die einen Testrückruf bestehen.

$colors = [
    'apple' => 'red',
    'banana' => 'yellow',
];

$filteredArray = array_filter($colors, function ($value) {
    return $value === 'red';
});

/*
 * It contains just one element: ['apple' => 'red']
 * ‘banana’ was filtered out.
 */
var_dump($filteredArray);
Nach dem Login kopieren

Leistungsbenchmarks zwischen PHP-Array-Funktionen und foreach

Wenn Leistung eines Ihrer Anliegen ist, wird dieser Abschnitt des Artikels mit Sicherheit interessant sein.

Ich habe ein Skript erstellt, um mit array_map und der foreach-Schleife eine einfache Operation an einem Array von 200.000 Elementen auszuführen. Ich habe das Inspector-Paket verwendet, um die Leistung der beiden Anweisungen zu verfolgen. Sie können mit dem Code in dieser Sandbox spielen: https://phpsandbox.io/e/x/5titt

$data = range(1, 200000);

$inspector->addSegment(function () use ($data) {
    array_map(fn($item) => $item * 3, $data);
}, 'array_map');

$data = range(1, 200000);

$inspector->addSegment(function () use ($data) {
    foreach ($data as $item) {
        $data[$item] = $item * 3;
    }
}, 'foreach');
Nach dem Login kopieren

Dutzende Ausführungen zeigen, dass foreach durchweg um etwa 10 % besser als array_map ist.

How to Search in a PHP Associative Array – Fast tips

Aber dieses Ergebnis kann je nach Kontextumgebung stark variieren. Wenn Sie das Snippet in der oben verlinkten Sandbox ausführen, werden Sie feststellen, dass foreach 10x effizienter ist als array_map. Sie können das Skript in Ihre lokale Umgebung kopieren und selbst einige Benchmarks erstellen.

Der Grund dafür, dass foreach im Allgemeinen effizienter ist als array_map, liegt darin, dass es nicht die Verwendung eines Rückrufs impliziert. Das Aufrufen einer Funktion verursacht mehr Aufwand, als das Array direkt im selben Bereich zu verwenden. Aus diesem Grund verschwendet array_map bei jeder Iteration etwas mehr Zeit. Es ist jedoch nur für größere Datensätze sichtbar. Je kleiner das Array, desto unbedeutender ist die Lücke.

Neu bei Inspector? Überwachen Sie Ihre Bewerbung kostenlos

Inspector ist ein Tool zur Codeausführungsüberwachung, das speziell für Softwareentwickler entwickelt wurde. Sie müssen nichts auf Serverebene installieren, installieren Sie einfach das Composer-Paket und schon kann es losgehen.

Im Gegensatz zu anderen komplexen All-in-One-Plattformen ist Inspector supereinfach und PHP-freundlich. Sie können unser Laravel- oder Symfony-Paket ausprobieren.

Wenn Sie auf der Suche nach effektiver Automatisierung, umfassenden Einblicken und der Möglichkeit sind, Warnungen und Benachrichtigungen an Ihre Messaging-Umgebung weiterzuleiten, testen Sie Inspector kostenlos. Registrieren Sie Ihr Konto.

Oder erfahren Sie mehr auf der Website: https://inspector.dev

How to Search in a PHP Associative Array – Fast tips

Das obige ist der detaillierte Inhalt vonSo suchen Sie in einem assoziativen PHP-Array – schnelle Tipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage