
配列から任意の複数キーを削除する †配列から任意のキーを削除する関数が標準関数群にないので作成してみました. やっていることは簡単で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)));
}
|