よしだメモ このページをアンテナに追加 RSSフィード

2008-07-27

[]create_functionを使ってみやがれ

PHPでもこういうコードはかけるんだよという一つの例

<?php
// rubyのArray#compactみたいなもの                                              
                                                                                
$ary = array(NULL, 3, 0, 'hoge');
$result = array_filter($ary, create_function('$n', 'return $n;'));
var_dump($result);
/*
array(2) {
  [1]=>
  int(3)
  [3]=>
  string(4) "hoge"
}
*/

// 0まで消えてしまうのが気にくわない人はis_nullをつかえ

$result = array_filter($ary, create_function('$n', 'return !is_null($n);'));
var_dump($result);
/*
array(3) {
  [1]=>
  int(3)
  [2]=>
  int(0)
  [3]=>
  string(4) "hoge"
}
*/

なまえなまえ 2009/01/27 03:33 最初の例は、create_function()使わなくてもいけますよ。
http://www.php.net/manual/ja/function.array-filter.php
の第2引数の説明:
> コールバック関数が与えられなかった場合、 input のエントリの中で FALSE と等しいもの (boolean への変換 を参照ください) がすべて削除されます。

よしだよしだ 2009/01/29 20:13 なるほど。マニュアルをよく読めですね。
勉強になりました。ありがとうございます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証