現在の位置: ホーム> 最新記事一覧> array_diff_assoc()およびarray_filter()は、微分後にクリーニングします

array_diff_assoc()およびarray_filter()は、微分後にクリーニングします

M66 2025-06-06

データクレンジングは、データ分析と処理の重要な部分であり、データの矛盾、エラー、または重複を排除することを目的としています。 PHPでは、データクリーニングの実装に役立つ多くの機能があります。今日は、 array_diff_assoc()array_filter()という2つの機能に焦点を当て、データクリーニングとそれらの違いにどのように役割を果たすかについて説明します。

1。ARRAY_DIFF_ASSOC ()関数

array_diff_assoc()関数は、2つ以上の配列間の違いを比較するために使用され、他の配列ではなく最初の配列に含まれる要素を返します。 array_diff()とは異なり、 array_diff_assoc()は、arrayのキー名を考慮します(キー名も比較に参加します)。その構文は次のとおりです。

 array_diff_assoc(array $array1, array $array2, array ...$arrays): array

2つの配列があり、最初の配列に存在するが2番目の配列には存在する要素を見つけたいとします。

 $array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3
];

$array2 = [
    "a" => 1,
    "b" => 3,
    "d" => 4
];

$result = array_diff_assoc($array1, $array2);
print_r($result);

出力結果

 Array
(
    [b] => 2
    [c] => 3
)

この例では、 array_diff_assoc()はarrays $ array1$ array2を比較し、異なるキー名と値を持つ要素を返します。この例では、array $ array1の要素「b」=> 2および「c」=> 3は配列$ array2ではないため、次の配列が返されます。

データクリーニングアプリケーション

いくつかのデータをクリーンアップする必要がある場合、 array_diff_assoc()は、複数のデータソースに存在するが一貫性のないデータを見つけるのに役立ちます。たとえば、2つのデータソースがあり、 Array1が現在のデータベースレコードを表し、 Array2が外部APIから取得されたデータを表すとします。 array_diff_assoc()を使用して、現在のデータに一致しないレコードを見つけることができます。

2。ARRAY_FILTER ()関数

array_filter()関数は、指定された条件を満たす配列と返品要素の要素をフィルタリングするために使用されます。その構文は次のとおりです。

 array_filter(array $array, callable $callback = null, int $mode = 0): array
  • $配列:フィルターする配列。

  • $ callback :各要素が条件を満たしているかどうかを判断するために使用されるコールバック関数。コールバック関数がtrueを返す場合、要素は結果配列に保持されます。

  • $モード:配列内のキー名を処理する方法を決定します。デフォルト値は0です。つまり、キー名は変更されません。

複数の数値を持つ配列があり、そこからゼロ値を削​​除する必要があるとします。

 $array = [1, 0, 2, 3, 0, 4];

$result = array_filter($array, function($value) {
    return $value !== 0;
});

print_r($result);

出力結果

 Array
(
    [0] => 1
    [2] => 2
    [3] => 3
    [5] => 4
)

この例では、 array_filter()はArrayから値が0のすべての要素を削除し、結果はゼロ値のない配列です。

データクリーニングアプリケーション

array_filter()は、データクリーニングの一般的なツールであり、特にnull、ゼロ、または非準拠の用語を削除するのに適しています。たとえば、ユーザーがサビされたフォームからいくつかのデータを収集します。一部のフィールドが空になる可能性がある場合、 array_filter()を使用すると、この無効なデータを削除するのに役立ちます。

3。array_diff_assoc ()array_filter()の違い

array_diff_assoc()array_filter()はどちらも配列処理に使用されますが、使用法のシナリオと関数に大きな違いがあります。

  1. 機能的な違い

    • array_diff_assoc()は、主に2つ以上の配列を比較して、その違い、特に値とキー名の違いを見つけるために使用されます。

    • array_filter()は、指定された条件に基づいて配列内の要素をフィルタリングし、条件を満たさないアイテムを削除するために使用されます。

  2. アプリケーションシナリオ

    • array_diff_assoc()は、違いを比較して見つけるのに適しており、多くの場合、複数のデータソースの状況に対処するために使用されます。

    • array_filter()は、データフィルタリングにより適しており、多くの場合、無効なデータまたは配列内の基準を満たさないアイテムをクリーニングするために使用されます。

  3. コールバック関数

    • array_filter()を使用すると、着信コールバック関数がフィルタリングルールを定義しますが、 array_diff_assoc()はコールバック関数をサポートしていないため、配列の値とキー名を直接比較します。

  4. 配列キー名の処理

    • array_diff_assoc()は、配列のキー名と対応する値を考慮します。

    • array_filter()デフォルトでは元の配列のキー名を保持しますが、 $モードパラメーターを使用して、キー名を再構築するかどうかを制御できます。

比較の例

重複したデータと不要な要素を含む2つの配列があるとしたら、データのクリーニングを実行したいとします。

 $array1 = [
    "a" => 1,
    "b" => 0,
    "c" => 2
];

$array2 = [
    "a" => 1,
    "b" => 0,
    "d" => 3
];

// 使用 array_diff_assoc() 2つの配列の比較,一貫性のない要素を見つけます
$diff = array_diff_assoc($array1, $array2);
print_r($diff);

// 使用 array_filter() フィルター値はです 0 要素
$filtered = array_filter($array1, function($value) {
    return $value !== 0;
});
print_r($filtered);

出力結果

 Array
(
    [b] => 0
    [c] => 2
)

Array
(
    [a] => 1
    [c] => 2
)

4。概要

array_diff_assoc()array_filter()を使用すると、データクリーニングを効率的に実行できます。 array_diff_assoc()は、特にキー名と値の両方を考慮する必要がある場合、配列間の違いを比較するのに適しています。 array_filter()は、 null値や無効なアイテムの削除など、特定の条件を満たさないデータを除外するのに適しています。

選択する機能を選択する実際のアプリケーションでは、特定のニーズに依存します。それらの違いを理解し、これらの2つの機能を使用する方法を習得すると、データをより効率的にクリーニングおよび処理することができます。