[PHP]配列の特定の値を持つ要素を削除 | 静岡県富士市在住のiPhoneアプリ開発者ブログ

[PHP]配列の特定の値を持つ要素を削除

PHPで配列のある値をもつ要素を削除したかったのですが、そういう関数はないので自作しました。

ちなみにやりたいことは、ユニークな整数値を持つ配列から特定の整数値を削除する、です。

例えば、
$array = ('50','41','31','50');

から、'31'を削除して

$array = ('50','41','50');

にする、ということです。

一応、PHPの関数を調べたのですが、一発で削除できる関数がないので自分で関数を実装してしまいました。

■PHPで配列内の特定の値を削除する関数

$array から $value を持つ要素を削除する

function array_delete($array, $value){
if (in_array($value, $array)){
$index = array_search($value, $array);//値の位置を取得
$ar1 = array_slice($array, 0, $index);//値の位置の前までスライス
$ar2 = array_slice($array, $index + 1);//値の次の位置からスライス
$ar1 = array_merge($ar1, $ar2);//合体
}
return $ar1;
}

ちなみに要素の値が重複している場合は、事前にarray_unique()で重複を削除してあげる必要があります。


うーん、これで一応いけたけどまどろっこしい。。。
もっとましなやり方があるはずだ。

だれか教えてください。