create_functionに値を渡して判定してarray_filterで除去するのが良いかと思った。
が、create_functionに値を渡すことができなかった…!
参考
無名関数(クロージャ) « PHP6.jp
無名関数/クロージャ基礎 | PHPサンプル実験室
Tricorn Labs » PHP 5.3を使ってみました。の機能1. クロージャ(無名関数)
PHP: 無名関数 - Manualでも混同されているけど無名関数とクロージャは別物なので注意。
ということで作った関数がこちら。
function array_remove_all($array, $value){ $callback = function($v) use($value){ return $v !== $value; }; return array_filter($array, $callback); }use を使うことで外からの変数を無名関数に渡すことができる。
array_filterでコールバック関数にcreate_functionを指定すると
変数と処理を文字列で記述しなくてはならなかったので IDEの支援なしで複雑なものを書くのは厳しかった。
せいぜい簡単なワンライナーで書ける処理だけだったので無名関数でPHPのコードとして書けるのは嬉しい。
今度から無名関数を使っていきたい。