Loading ...

配列から任意の複数キーを削除する


配列から任意のキーを削除する関数が標準関数群にないので作成してみました. やっていることは簡単でarray_diff_key()を用いるだけです.

/**
 *  配列から任意のキーの要素を削除する
 *
 *  @param array $array 対象の配列
 *  @param mixed 削除したい連想名.連想名を複数指定したい場合,リスト配列で渡す
 *  @return array 削除結果の配列
 */
//  $array1 = array( "foo"=>"foo", "bar"=>"bar", 1=>1, 2=>2, 3=>3);
//  $array2 = array( 1, 2, 3);
//  array_unset_keys( $array1, $array2);
function array_unset_keys( $array, $keys) {
   $unset_keys = is_array( $keys) == TRUE? array_flip( $keys): array( $keys=>TRUE);
   $result = array_diff_key( $array, $unset_keys);
   return $result;
}

とにかく簡単に書く!!とかいくつかバリエーションも用意しておきます.

シンプルに.$keysは配列のみ受け取ります
//  使い方は上と同じ
function array_unset_keys( $array, $keys) {
   return array_diff_key( $array, array_flip( $keys));
}
カンマ区切り文字列でキーを指定.カンマを連想名に使えなくなるので注意
//  $array1 = array( "foo"=>"foo", "bar"=>"bar", 1=>1, 2=>2, 3=>3);
//  array_unset_keys( $array1, "1,2,3");
function array_unset_keys( $array, $keys) {
   return array_diff_key( $array, array_flip( explode( ",", $keys)));
}

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
最終修正日時: Thu, 13 Jul 2006 12:26:35 JST (2032d)
文字数(HTML): 1125
文字数(Wiki): 1076
人気ブログランキング - よくきた wiki