PHP でコールバック関数を使用してキー名を比較し、配列の共通部分を計算する方法

WBOY
リリース: 2024-03-19 12:40:01
転載
369 人が閲覧しました

phpエディタYouziは、コールバック関数を使用してキー名を比較し、配列の交差を計算する方法を詳しく紹介します。 PHP では、array_uintersect_assoc() 関数とカスタム コールバック関数を組み合わせて使用​​し、キー名に基づいて配列を比較し、交差結果を返すことができます。簡潔なコード例と段階的な説明を通じて、この実践的なスキルを簡単に習得し、PHP 開発をより効率的かつ柔軟にすることができます。

PHP はコールバック関数を使用してキー名を比較し、配列の交差部分を計算します

2 つの配列、つまり同じキー名を共有する要素の交差部分を計算するには、phparray_intersect_key() 関数を使用できます。この関数は、最初の配列を反復処理し、提供されたコールバック関数を使用して、同じキーを持つ要素が 2 番目の配列に存在するかどうかを確認します。

この関数の構文は次のとおりです:

array_intersect_key(配列 $array1, 配列 $array2, 呼び出し可能 $key_compare_func)
ログイン後にコピー
###で:###

    $array1
  • :最初の配列
  • $array2
  • : 2 番目の配列
  • $key_compare_func
  • : キー名を比較するためのコールバック関数
  • コールバック関数は、比較する 2 つのキー名を表す 2 つのパラメーターを受け取り、2 つのキー名が等しいかどうかを示すブール値を返す必要があります。

次の例は、

array_intersect_key()

関数を使用して 2 つの配列、コールバック関数 ion の交差を計算する方法を示しています。 "緑"、"バナナ" => "黄"、"オレンジ" => "オレンジ"]; $array2 = ["リンゴ" => "赤"、"バナナ" => "緑"、"梨" => "緑"]; //キー名を比較するためのコールバック関数を定義する $key_compare_func = function($key1, $key2) { $key1 === $key2 を返します。 }; // 配列の交差部分を計算します $intersection = array_intersect_key($array1, $array2, $key_compare_func); print_r($intersection); ?>

出力:
###配列
(
[リンゴ] => 緑
[バナナ] => 緑
)
ログイン後にコピー

この例では、コールバック関数

$key_compare_func
 が 2 つのキー名が等しいかどうかを比較します。キー 
ログイン後にコピー
apple

banana のみが両方の配列に存在するため、これらは共通部分を形成します。 匿名関数を使用する:

匿名関数を使用してコールバック関数を定義し、コールバック関数をより簡潔にすることもできます。以下は、匿名関数を使用した同じ例です: $intersection = array_intersect_key($array1, $array2, function($key1, $key2) { $key1 === $key2 を返します。 });

アロー関数の使用 (PHP 7.4 以降):
ログイン後にコピー
ログイン後にコピー

PHP 7.4 以降では、アロー関数を使用してコードをさらに簡素化できます。 $intersection = array_intersect_key($array1, $array2, fn($key1, $key2) => $key1 === $key2);

カスタム キー名の比較:
ログイン後にコピー
ログイン後にコピー

コールバック関数を使用すると、カスタムのキー名比較ロジックが可能になります。たとえば、次のコールバック関数を使用すると、大文字と小文字を区別せずにキー名を比較できます。 $key_compare_func = function($key1, $key2) { return strto lower($key1) === strto lower($key2); };

これにより、配列のキー名が異なる場合でも正しく交差が計算されます。

以上がPHP でコールバック関数を使用してキー名を比較し、配列の共通部分を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:lsjlt.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!