_rest_array_intersect_key_recursive()


WordPressの_rest_array_intersect_key_recursive()関数は、再帰的に配列のキーを比較し、両方の配列に存在するキーのみを保持します。REST APIの処理でよく使用されます。

構文

_rest_array_intersect_key_recursive( array $array1, array $array2 );

引数の説明:

  • $array1(array)—比較対象の第1配列
  • $array2(array)—比較対象の第2配列

例1:基本使用法

2つの配列の共通キーを再帰的に取得します。

$result = _rest_array_intersect_key_recursive( array('a'=>1,'b'=>2), array('a'=>3,'c'=>4) );

例2:多次元配列の処理

多次元配列でも動作します。

$result = _rest_array_intersect_key_recursive( array('a'=>array('b'=>1)), array('a'=>array('b'=>2,'c'=>3)) );

例3:WP_REST_Requestでの使用

REST APIリクエストのパラメータをフィルタリングします。

$filtered = _rest_array_intersect_key_recursive( $request->get_params(), array('id'=>'','title'=>'') );

例4:設定オプションのフィルタリング

設定オプションから特定のキーのみを抽出します。

$options = _rest_array_intersect_key_recursive( get_option('my_settings'), array('color'=>'','size'=>'') );

例5:メタデータのフィルタリング

投稿メタデータから必要なキーのみを取得します。

$meta = _rest_array_intersect_key_recursive( get_post_meta(get_the_ID(),'',true), array('_thumbnail_id'=>'') );

例6:ユーザーデータの処理

ユーザーデータから特定のフィールドのみを選択します。

$user_data = _rest_array_intersect_key_recursive( get_userdata(1)->to_array(), array('user_login'=>'','user_email'=>'') );

例7:カスタムフィールドの選択

ACFフィールドから特定のフィールドのみを抽出します。

$fields = _rest_array_intersect_key_recursive( get_fields(), array('header_image'=>'','footer_text'=>'') );

注意点

  • この関数は非公開APIの一部である可能性があり、将来のバージョンで変更されることがあります
  • 配列の値は保持されますが、比較はキーのみで行われます
  • 大文字と小文字を区別します

関連機能: