array_~配列要素の削除

array_unique()

構文は「array_unique(対象配列 [, ソート方法])」です。
array_unique()は、重複する値を見つけて削除します。第二引数はオプションで、デフォルトは文字列として比較する「SORT_STRING」です。他に数値として比較する「SORT_NUMERIC 」、型変換をしない通常の比較をする「SORT_REGULAR」、ロケール情報に従って文字列として比較する「SORT_LOCALE_STRING」があります。array_unique()は値を文字列としてソートしてからそれぞれの値の初めのキーを取得し、それ以降に出現するキーを全て無視します。

1
2
$a = ["B" => "b","C" => "c","D" => "d","E" => "a","A" => "a","F" => "a"];
print_r(array_unique($a));
実行結果:
Array
(
[B] => b
[C] => c
[D] => d
[E] => a
)

array_splice()

構文は「array_splice(&対象配列, オフセット [, 削除数, [挿入配列]]);」です。
array_splice()は配列の一部を取り除き、新たな要素で置き換えます。第二引数のオフセットがプラスであれば対象配列の先頭から指定したオフセット値まで進んだところが削除の開始位置となります。マイナスを指定すると最後尾からカウントした位置になります。また、第三引数の削除数を省略すると、上記プラス指定の位置から最後までの部分が取り除かれます。削除数がプラス指定されると複数要素が取り除かれます。反対にマイナスであれば対象配列の最後尾をベースに処理されます。0指定の場合は、いずれの要素もそのままです。第四引数の挿入配列を指定した場合、その配列要素と置換しますが、一切の削除がないケースではオフセットの位置に挿入されます。また、挿入した配列のキーは整数に置き換えられるため、連想配列のキーを保持して要素を挿入することはできません。

1
2
3
4
5
6
7
8
9
10
11
$a=["a","b","c","d","e"];
array_splice($a, 2);
print_r($a);
//
$a=["a","b","c","d","e"];
array_splice($a, 1, -1);
print_r($a);
//
$a=["a","b","c","d","e"];
array_splice($a, -1, 1, 'h');
print_r($a);
実行結果:
(
[0] => a
[1] => b
)
(
[0] => a
[1] => e
)
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => h
)