PEAK XOOPS - 使える関数array_map() in englishin japanese

Archive | RSS |
PHP
PHP : 使える関数array_map()
Poster : GIJOE on 2007-03-20 13:06:04 (12617 reads)

in englishin japanese
PHPコードを書くとき、処理速度の関係から、極力ビルトイン関数を使うようにしているのだが、最近のお気に入りはarray_map()。
これがいろいろな局面で使える。

例えば、フォームにカンマ区切りで、複数の値を入力してもらう時。
1,2,3,4 とか。
これをint型の配列で取得したい場合、explodeしたものをforeach()で回しがちだけど、実はこの1行で済む。


$myarray = array_map( 'intval' , explode( ',' , $post_data ) ) ;


あと、役に立つのが、重複無しで配列の和を取る場合。
配列同士を+演算子で「足す」と、同じindexを持った要素の片方が消えてしまう。
かといって、array_merge()で「足す」と、同じ内容の要素が重複してしまう。

通常、array_merge()などで重複したデータを消すためには、array_unique() を利用するのだが、この関数はあくまで、文字列での比較しかしない。だから、配列要素が配列やオブジェクトの場合は、そのままだと使えない。

このケースでも、array_map() の出番となる。

$merged_array = array_map( 'unserialize' , array_unique( array_map( 'serialize' , array_merge( $array1 , $array2 ) ) ) ) ;

0 comments
Printer friendly page Send this story to a friend

Comments list

Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!