In PHP ist die Verarbeitung von JSON -Daten eine häufige Aufgabe, insbesondere wenn wir Daten von der API abrufen oder übertragen müssen. Eine der häufigsten Anforderungen besteht darin, die angegebenen Schlüsselwertpaare in JSON herauszufiltern, die normalerweise durch Konvertieren von JSON in ein PHP-Array und dann die entsprechenden Funktionen verwendet werden können. In diesem Artikel wird vorgestellt, wie Sie JSON_DECODE () und Array_Diff_Key () kombinieren, um bestimmte Schlüsselwertepaare in JSON-Daten effektiv herauszufiltern.
Zunächst wird die Funktion json_decode () verwendet, um Zeichenfolgen im JSON -Format in PHP -Arrays umzuwandeln. Die grundlegende Verwendung dieser Funktion ist wie folgt:
$json_data = '{"name": "John", "age": 30, "city": "New York"}';
$data = json_decode($json_data, true); // Der zweite Parameter true Lassen Sie das Rückgabeergebnis ein Array sein
Im obigen Code ist $ JSON_DATA eine JSON -String, die JSON_DECODE () in das PHP -Array $ -Daten umwandelt. Das konvertierte Array ist:
Array
(
[name] => John
[age] => 30
[city] => New York
)
Sobald die JSON-Daten in ein Array konvertiert wurden, können wir die Funktion array_diff_key () verwenden, um unerwünschte Schlüsselwertpaare herauszufiltern. Diese Funktion vergleicht die Schlüssel von zwei Arrays und gibt Schlüsselwertpaare im ersten Array zurück, die sich nicht im zweiten Array befinden.
Angenommen, wir möchten das Alter und die Stadtschlüssel aus dem obigen Array entfernen und nur den Namensschlüssel lassen. Wir können das tun:
$keys_to_keep = ['name' => null]; // Schlüssel, die beibehalten werden müssen
$filtered_data = array_diff_key($data, $keys_to_keep);
Die Funktion array_diff_key () gibt jedoch ein Array mit entferntem Schlüsselwertpaaren zurück, sodass der Code hier möglicherweise verwirrend ist. Um Missverständnisse zu vermeiden, können wir bestimmte Schlüssel aufbewahren, indem wir die zu löschenden Schlüssel umgekehrt bedienen:
$keys_to_remove = ['age' => null, 'city' => null]; // Schlüssel zum Entfernen
$filtered_data = array_diff_key($data, $keys_to_remove);
Auf diese Weise enthält $ filtered_data nur den Wert, der dem Namensschlüssel entspricht:
Array
(
[name] => John
)
Angenommen, wir haben einige JSON -Daten aus der API und hoffen, die Teile herauszufiltern, die uns wichtig sind. Hier ist ein spezifischeres Beispiel:
// Angenommen, wir stammen von einigen URL Erhalten JSON Daten
$json_url = "https://m66.net/api/user_data"; // Ersetzen durch tatsächliche URL
$json_data = file_get_contents($json_url);
// Wille JSON Daten解码为 PHP Array
$data = json_decode($json_data, true);
// Angenommen, wir brauchen nur user_id Und user_name Diese beiden Felder
$keys_to_keep = ['user_id' => null, 'user_name' => null];
// verwenden array_diff_key 筛选需要的Daten
$filtered_data = array_diff_key($data, $keys_to_keep);
// 输出筛选后的Daten
print_r($filtered_data);
In diesem Beispiel erhält die Funktion von File_Get_Contents () JSON -Daten von der angegebenen URL und konvertiert sie über JSON_DECODE () in ein PHP -Array. Verwenden Sie dann array_diff_key () , um die erforderlichen Felder herauszufiltern und schließlich die gefilterten Daten auszudrucken.
Durch Kombination der Funktionen json_decode () und array_diff_key () können wir die angegebenen Schlüsselwertpaare aus JSON-Daten problemlos herausfiltern. JSON_DECODE () ist für die Konvertierung von JSON -Zeichenfolgen in PHP -Arrays verantwortlich, während array_diff_key () uns hilft, unerwünschte Schlüssel zu entfernen, um einige der von uns benötigten Daten zu erhalten. Dieser Ansatz kann bei der Verarbeitung von API -Aufrufergebnissen sowie in jedem Szenario, in dem bestimmte Informationen aus JSON -Daten extrahiert werden, häufig verwendet werden.
Verwandte Tags:
JSON