[PHP-users 14906]配列のフィルター

MT akc @ mutt.freemail.ne.jp
2003年 4月 25日 (金) 00:12:06 JST


MTです。

配列の要素で不要なものを取り除く場合、PHPの処理的に
一番効率のよい方法についてお尋ねします。

$hairetu = array(A,A,B,B,B,C,A,C,B,C,A,C,C .......);

上のように A,B,C 3パターンの要素が入っていて、Cだけ取り除き
A,Bには別の処理して最終的に

$shorigo = array(A',A',B',B',B',A',B',A' .......);

という配列を得たいとします。
phpには array_filter という関数があるので、
まず前処理として $hairetu からCをとりのぞき($hairetu2)、
$hairetu2の全ての要素に A を A' にする処理をするのか、

foreach で $hairetu の全ての要素に対して A なら処理1 Bなら
処理2 Cならスキップみたいにするのが良いか。

はじめはarray_walkを使おうかと思ったのですが、(どこかで
その方が内部的に効率が良いと書いてあったような気がしたので
マニュアル見直したら見つけられませんでしたが)Cを配列から取り
のぞくので、array_filterか、でもどうせAもBも処理するのだから
foreachか...と、ちょとひっかかっています。

いまやっているような処理では体感できるほどの差は出ませんでしたが、
充分大きな配列を扱うとして、やり方によって差は出るものでしょうか?

PHP4.3.1です。

-- 
MT <akc @ mutt.freemail.ne.jp>



PHP-users メーリングリストの案内