現在の位置: ホーム> 最新記事一覧> array_keys()を使用してキー名を抽出し、array_diff_uassocと比較する方法は?

array_keys()を使用してキー名を抽出し、array_diff_uassocと比較する方法は?

M66 2025-06-24

PHPでは、アレイは非常に強力なデータ構造であり、大量のデータを保存および処理できるようにします。アレイからキー名を抽出したり、2つの配列間でキー名を抽出したり、比較プロセスが配列のキーと値を考慮していることを確認する必要がある場合があります。今日は、これを達成するためにArray_Keys()Array_diff_uassoc()を組み合わせて使用​​する方法を説明します。

1。array_keys ()を使用して、配列のキー名を抽出します

array_keys()関数は、すべてのキー名を配列から抽出し、インデックス付き配列として返すことができます。この機能は、特に配列のキーを操作する必要がある場合に非常に便利です。 Array_keys()の基本的な使用方法は次のとおりです。

 <?php
$arr = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$keys = array_keys($arr);
print_r($keys);
?>

出力:

 Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

この例では、 array_keys()は、配列キー名を含む配列を返します。これらのキー名を使用して、必要に応じてさらなる操作を実行できます。

2。array_diff_uassoc ()を使用して、微細な比較を行います

array_diff_uassoc()関数は、2つの配列のキーと値を比較し、ユーザー定義の比較関数に基づいて洗練された比較を行うことができます。その機能はarray_diff_assoc()に似ていますが、比較ルールをカスタマイズすることができます。この関数は、違いを含む配列を返します。

array_diff_uassoc()の基本的な構文は次のとおりです。

 array_diff_uassoc(array $array1, array $array2, callable $value_comparator)
  • $ array1および$ array2は比較する配列です。

  • $ value_comparatorは、配列内の値を比較するカスタム比較関数です。

次に、 array_keys()array_diff_uassoc()を組み合わせて、洗練された比較操作を実装する例を見てみましょう。

 <?php
// 2つの配列を定義します
$array1 = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$array2 = [
    'apple' => 1,
    'banana' => 3,
    'cherry' => 3
];

// カスタム比較関数:2つの値が等しいかどうかを比較します
function custom_compare($value1, $value2) {
    return $value1 - $value2;
}

// 使用 array_diff_uassoc 洗練された比較を実行します
$result = array_diff_uassoc($array1, $array2, 'custom_compare');
print_r($result);
?>

出力:

 Array
(
    [banana] => 2
)

この例では、2つの配列$ array1$ array2を定義し、 Custom_Compare関数を使用して値を比較します。 array_diff_uassoc()違いを含む配列を返します。つまり、バナナキーの値は2です。これは、 array2バナナキー3に等しくないため、バナナは差の結果としてリストされています。

3。Array_Keys ()array_diff_uassoc()を組み合わせて、キー名の違いの比較を達成する

実際には、特定の特定のキー名を気にするだけで、これらのキー名をarray_keys()を介して取得し、 array_diff_uassoc()を使用して洗練された方法で比較したい場合があります。たとえば、 AppleCherryの2つのキーのみを比較したいのです。

 <?php
// 2つの配列を定義します
$array1 = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$array2 = [
    'apple' => 1,
    'banana' => 3,
    'cherry' => 4
];

// 比較するキー名を取得します
$keys_to_compare = array_keys($array1); // ['apple', 'banana', 'cherry']

// カスタム比較関数:2つの値が等しいかどうかを比較します
function custom_compare($value1, $value2) {
    return $value1 - $value2;
}

// 違いを比較して戻ります
$result = array_diff_uassoc(
    array_intersect_key($array1, array_flip($keys_to_compare)),
    array_intersect_key($array2, array_flip($keys_to_compare)),
    'custom_compare'
);

print_r($result);
?>

出力:

 Array
(
    [cherry] => 3
)

この例では、最初にarray_keys()を介してarray $ array1のすべてのキー名を抽出します。次に、 array_intersect_key()を介して比較する必要があるキー( Apple and Cherry )のみを保持します。最後に、 array_diff_uassoc()を使用して微妙な比較を実行し、結果は、チェリーの値が$ array13$ array24であるため、チェリーを返すことが示されました。

結論は

array_keys()array_diff_uassoc()を組み合わせることにより、配列のキー値をより柔軟に比較することができます。 array_keys()を使用すると、配列のキー名を簡単に抽出できますが、 array_diff_uassoc()を使用すると、比較ルールをカスタマイズして、比較プロセス中に配列のキーと値が考慮されるようにします。これらの2つの機能の使用を習得すると、PHPで配列を処理する能力が大幅に向上する可能性があります。