Die Funktion array_diff_key () nimmt zwei oder mehr Array -Parameter und gibt ein Array zurück, das Schlüssel enthält, die im ersten Array vorhanden sind, jedoch nicht in den anderen Arrays. Die Syntax ist wie folgt:
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1 : Das erste Array, das Benchmark -Array zum Vergleich.
$ array2 : Das zweite Array, das Objekt zum Vergleichen des Benchmark -Arrays.
$ arrays : Optionaler Parameter, mehrere Arrays können an mehrere Vergleiche übergeben werden.
Das Rückgabeergebnis ist ein Array, das Schlüsselwertpaare enthält, die in $ array1 , jedoch nicht in $ array2 , vorhanden sind.
Nehmen wir an, wir haben zwei Konfigurationsarrays, die dieselben Konfigurationselemente enthalten, einige Konfigurationselemente können jedoch Unterschiede in den Schlüsselnamen und -inhalten aufweisen. Mit der Funktion array_diff_key () können wir diese Unterschiede leicht finden.
Hier ist ein Beispielcode, der zeigt, wie zwei Konfigurationsarrays mit Array_Diff_key () verglichen werden und schnell inkonsistente Einträge finden.
<?php
// Array konfigurieren 1
$config1 = [
'db_host' => 'localhost',
'db_name' => 'my_database',
'db_user' => 'root',
'db_password' => 'password123',
'api_url' => 'https://m66.net/api/v1',
'cache_enabled' => true,
];
// Array konfigurieren 2
$config2 = [
'db_host' => 'localhost',
'db_name' => 'my_database',
'db_user' => 'admin',
'db_password' => 'password123',
'cache_enabled' => true,
'api_url' => 'https://m66.net/api/v2', // Verschiedene Versionen
];
// verwenden array_diff_key() Finden Sie Unterschiede in der Konfiguration
$differences = array_diff_key($config1, $config2);
// Ausgangsunterschied
echo "existieren config1 Mitte,但不existieren config2 Mitte的配置项:\n";
print_r($differences);
?>
Angenommen, wir führen den obigen Code aus, die Ausgabe wird sein:
existieren config1 Mitte,但不existieren config2 Mitte的配置项:
Array
(
[api_url] => https://m66.net/api/v1
[db_user] => root
)
Aus den Ergebnissen können wir sehen, dass die Werte der Konfigurationselemente der DB_USER und der API_url in den beiden Arrays unterschiedlich sind. DB_USER wird in config2 an admin geändert, während die Versionsnummern von api_url unterschiedlich sind.
Mit diesem Ansatz können wir die Inkonsistenzen zwischen den beiden Konfigurationsarrays eindeutig identifizieren.
In der tatsächlichen Entwicklung müssen wir möglicherweise mehrere Konfigurationsdateien oder Konfigurationen mehrerer verschiedener Umgebungen vergleichen (z. B. Entwicklungsumgebung, Produktionsumgebung usw.). Über die Funktion array_diff_key () können Entwickler leicht unterschiedliche Teile finden, die zwischen Konfigurationsdateien vorhanden sind. Dies ist sehr hilfreich für die Fehlerbehebung Konfigurationsfehler oder das Finden fehlender Konfigurationselemente.