現在の位置: ホーム> 最新記事一覧> キーフィルタリングと変換のためのarray_map()と組み合わせて

キーフィルタリングと変換のためのarray_map()と組み合わせて

M66 2025-05-15

PHPでは、 array_diff_ukey()array_map()は、配列キーとフィルターを比較し、それぞれアレイをマッピングおよびコンバイに変換するために使用される非常に一般的に使用される配列関数です。この記事では、これら2つの機能を組み合わせて使用​​する方法を紹介して、配列キーのフィルタリングと変換を実装します。

array_diff_ukey()関数

array_diff_ukey()は、2つ以上の配列のキーを比較し、異なるキーを持つ要素を含む配列を返すために使用されます。この関数の構文は次のとおりです。

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
  • $ array1および$ array2は、比較する2つの配列です。

  • $ key_compare_funcは、 2つの配列のキーを比較するコールバック関数です。

この関数は、コールバック関数を介してキーを比較する方法を決定します。コールバック関数が0を返す場合、キーが同じであることを意味します。負の値を返します。これは、 $ array1のキーが$ array2のキーよりも小さいことを意味します。正の値を返します。これは、 $ array1のキーが$ array2のキーよりも大きいことを意味します。

array_map()関数

array_map()は、配列の各要素にコールバック関数を適用し、新しい配列を返すために使用されます。構文は次のとおりです。

 array_map(callable $callback, array $array): array
  • $コールバックは、各要素に適用されるコールバック関数です。

  • $配列はマッピングする配列です。

Array_diff_ukey()array_map()を組み合わせて使用​​します

array_diff_ukey()を使用してキーをフィルタリングし、 array_map()を使用してarrayの値を変換できます。これらの2つの機能を組み合わせて使用​​してキーをフィルタリングおよび変換する方法を示す実用的な例を以下に示します。

 <?php
// オリジナル配列
$array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
    'd' => 4
];

// 配列を比較します,私たちが維持したいと仮定します 'a' そして 'c' これら2つのキー
$array2 = [
    'a' => 10,
    'c' => 20
];

// 使用 array_diff_ukey 除外しないでください $array2 に存在するキー
$filteredArray = array_diff_ukey($array1, $array2, function($key1, $key2) {
    return $key1 <=> $key2; // キーのサイズを比較します
});

// 使用 array_map 値をフィルター付き配列に変換します,ここでは、値に掛けられます 10
$transformedArray = array_map(function($value) {
    return $value * 10;
}, $filteredArray);

// 出力結果
print_r($transformedArray);
?>

コードの説明

  1. 最初に、比較のために、生の配列$ array1とarray $ array2を定義します。

  2. array_diff_ukey()関数を介して、 $ array1$ array2のキーを比較し、 $ array2にない$ array1のキーを除外します。この例では、フィルタリングされた配列$ filteredArrayには、キー「A」「C」に対応する要素が含まれます。

  3. 次に、 array_map()を使用して、 $ filteredArrayアレイの値を変換します。この例では、値に10を掛けて、新しい配列$ TransformEdArrayを生成します。

  4. 最後に、変換された配列を出力します。

結論は

array_diff_ukey()array_map()を組み合わせて使用​​することで、フィルタリング配列キーを実装して値を変換できます。このような組み合わせにより、特に配列キーと値の両方が必要な場合、複雑なデータ操作を処理する柔軟性が可能になります。