現在の位置: ホーム> 最新記事一覧> PHP関数array_diff_uassocを使用して、CSVファイルと元の配列から読み取られた配列のキー名を比較する方法は?

PHP関数array_diff_uassocを使用して、CSVファイルと元の配列から読み取られた配列のキー名を比較する方法は?

M66 2025-06-13

PHPでは、 array_diff_uassoc関数を使用して2つの配列を比較し、キー名の違いを含む配列を返します。 array_diff_uassocは、 CSVファイルから配列を読み、キー名を元の配列と比較する必要がある場合、非常に実用的なツールです。この記事では、この関数を使用して、CSVファイルと元の配列から読み取られた配列のキー名を比較する方法について詳しく説明します。

シナリオを使用します

元のデータを含む配列があり、 FGETCSV()を介してCSVファイルから別のデータセットを読み取るとします。 2つのデータセットのキー名の違いを比較することをお勧めします。Array_diff_uassocこのタスクを非常に簡単に達成できます。

ステップ

  1. CSVファイルを読む<br> まず、CSVファイルのデータを読み取り、連想配列に変換する必要があります。通常、PHPのFGETCSV()関数を使用してCSVファイルを読み取り、配列を作成できます。

  2. 元の配列<br>を定義します 次に、CSVデータと比較する生の配列を定義します。

  3. array_diff_uassocを使用して、キー名の違い<br>を比較します 最後に、 array_diff_uassoc関数を使用して、2つの配列間のキー名の違いを比較します。

サンプルコード

<?php
// オリジナルの配列があるとします
$originalArray = [
    'name' => 'John',
    'age' => 25,
    'location' => 'New York'
];

// から CSV ファイルはデータを読み取り、配列をビルドします
// 1つがあるとします CSV 書類 data.csv,コンテンツは次のとおりです:
// name,John
// age,30
// address,123 Street
$csvFile = fopen('data.csv', 'r');
$csvArray = [];
while (($data = fgetcsv($csvFile, 1000, ',')) !== FALSE) {
    $csvArray[$data[0]] = $data[1]; // 意思 CSV データを連想配列に変換します
}
fclose($csvFile);

// 元の配列を比較します CSV 配列のキー名の違い
$diff = array_diff_uassoc($csvArray, $originalArray, function($key1, $key2) {
    return strcmp($key1, $key2); // キー名の違いを比較します
});

// 出力の違い
echo "キー名の違い:\n";
print_r($diff);
?>

説明する

  • オリジナル配列$ originalArrayは、比較するために使用する生データです。これには、いくつかのキー価値ペアが含まれています。

  • CSVデータの読み取りfgetcsv()を使用して、 data.csvファイルから行ごとにデータ行を読み取り、各行を連想配列$ csvarrayに変換します。

  • array_diff_uassoc :この関数は3つのパラメーターを受け入れます。 1つ目は比較する配列、2つ目はベンチマークアレイ、3つ目はキー名を比較するために使用されるコールバック関数です。コールバック関数は、引数として2つのキー名を取り、違いを返します。この例では、 strcmp()関数を使用して辞書の順序比較を実行します。

結果

このコードは、元の配列とCSVファイルから読み取られた配列の間のキーネームの違いを出力します。たとえば、CSVファイルにアドレスキーが含まれていて、元の配列が含まれていない場合、アドレスキーは差アレイに含まれます。

まとめ

array_diff_uassoc関数を使用すると、配列のキー名の違いを簡単に比較できます。 CSVファイルからデータを読み取り、元の配列と比較することにより、2つの配列のキー名の違いをすばやく識別できます。この方法は、データ処理、インポート、エクスポート、または検証に非常に役立ちます。