現在の位置: ホーム> 最新記事一覧> json_decode()とarray_diff_key()を組み合わせて、JSONデータを処理します

json_decode()とarray_diff_key()を組み合わせて、JSONデータを処理します

M66 2025-05-15

PHPでは、特にAPIからデータを取得または転送する必要がある場合、JSONデータの処理は一般的なタスクです。一般的な要件の1つは、JSONの指定されたキー価値ペアを除外することです。これは通常、JSONをPHPアレイに変換して対応する関数を使用して処理できます。この記事では、json_decode()array_diff_key()関数を組み合わせて、JSONデータの特定のキー値ペアを効果的にフィルタリングする方法を紹介します。

1。JSON_DECODE ()関数を使用して、JSONデータを解析します

まず、 JSON_DECODE()関数は、JSON形式の文字列をPHPアレイに変換するために使用されます。この関数の基本的な使用法は次のとおりです。

 $json_data = '{"name": "John", "age": 30, "city": "New York"}';
$data = json_decode($json_data, true);  // 2番目のパラメーター true 返品結果を配列にします

上記のコードでは、 $ JSON_DATAはJSON文字列であり、 JSON_DECODE()がPHPアレイ$データに変換します。変換された配列は次のとおりです。

 Array
(
    [name] => John
    [age] => 30
    [city] => New York
)

2。array_diff_key ()関数を使用して、指定されたキー価値ペアをフィルタリングします

JSONデータがArrayに変換されると、 array_diff_key()関数を使用して、不要なキー価値ペアを除外できます。この関数は、2つの配列のキーを比較し、2番目の配列にない最初の配列にキー値ペアを返します。

上記のアレイから年齢都市の鍵を削除し、名前キーのみを残すとします。これを行うことができます:

 $keys_to_keep = ['name' => null];  // 保持されるキー
$filtered_data = array_diff_key($data, $keys_to_keep);

ただし、 array_diff_key()関数は、キー価値ペアが削除された配列を返します。したがって、ここのコードは混乱する可能性があります。誤解を避けるために、削除するキーを逆に操作することにより、特定のキーを維持できます。

 $keys_to_remove = ['age' => null, 'city' => null];  // 削除するキー
$filtered_data = array_diff_key($data, $keys_to_remove);

このように、 $ filtered_dataには、名前キーに対応する値のみが含まれます。

 Array
(
    [name] => John
)

3。実用的なアプリケーションの例:APIからデータを取得してフィルタリングします

APIからJSONデータがいくつかあり、気になる部品を除外したいと考えています。より具体的な例を次に示します。

 // 私たちがいくつかの出身であると仮定します URL 取得 JSON データ
$json_url = "https://m66.net/api/user_data";  // 実際に置き換えます URL
$json_data = file_get_contents($json_url);

// 意思 JSON データ解码为 PHP 配列
$data = json_decode($json_data, true);

// 私たちだけが必要だと仮定します user_id そして user_name これらの2つのフィールド
$keys_to_keep = ['user_id' => null, 'user_name' => null];

// 使用 array_diff_key 筛选需要的データ
$filtered_data = array_diff_key($data, $keys_to_keep);

// 输出筛选后的データ
print_r($filtered_data);

この例では、 file_get_contents()関数は、指定されたURLからJSONデータを取得し、 json_decode()を介してPHPアレイに変換します。次に、 array_diff_key()を使用して必要なフィールドを除外し、最後にフィルタリングされたデータを印刷します。

4。概要

json_decode()array_diff_key()関数を組み合わせることにより、JSONデータから指定されたキー価値ペアを簡単に除外できます。 JSON_DECODE()はJSON文字列をPHPアレイに変換する責任がありますが、 array_diff_key()は、必要なデータの一部を取得するために不要なキーを削除するのを支援します。このアプローチは、JSONデータから抽出するために特定の情報が必要なシナリオと同様に、API呼び出し結果の処理に広く使用できます。