インデックス配列のキーと値を比較して連想配列をフィルターするにはどうすればよいでしょうか? 質問する

インデックス配列のキーと値を比較して連想配列をフィルターするにはどうすればよいでしょうか? 質問する

コールバック関数はarray_filter()配列のキーではなく値のみが渡されます。

以下のものがある場合:

$my_array = array("foo" => 1, "hello" => "world");

$allowed = array("foo", "bar");

$my_array配列にないすべてのキーを削除する最適な方法は何ですか$allowed?

望ましい出力:

$my_array = array("foo" => 1);

ベストアンサー1

array_intersect_keyそしてarray_flip:

var_dump(array_intersect_key($my_array, array_flip($allowed)));

array(1) {
  ["foo"]=>
  int(1)
}

おすすめ記事