2013-08-01 13 views
12

私はarray_mapをherearray_mapをインライン無名関数

でインライン無名関数をテストし、それが働いていたが、私はuser_metaと同じしようとしたとき、それは働いていません。..

$user_meta = Array ([interest] => Array ([0] => Array) [type] => 
    Array ([0] => Array) [user_status] => Array ([0] => deny) 
    [firstname] => Array ([0] =>) [lastname] => Array ([0] => B) 
    [email] => [email protected]) 

    $user_meta = array_map(function($a) { return $a[0]; },$user_meta); 

「解析エラー:構文エラー、予期しません、 ')' 期待

here is the test link showing error

+4

ですインラインの匿名関数はPHP 5.3以降でのみ動作します –

+0

P.S.用にフォーマットしますprint_r()の出力は、$のuser_meta配列のあなたの定義は、PHPの配列には有効ではありません –

+0

@Paulproなぜ形式の変更をロールバックしましたか? – jmattheis

答えて

10

「にarray_mapラインと間違って何もT_FUNCTIONありません、それ以前のすべては間違っています。これはPHPコードではなくprint_rの出力です。あなたが投稿した2つのリンクの配列をどのように定義するかを比較してください。

+0

引数を指定して配列を渡すと同じエラーが発生します。明示的に関数を呼び出すだけで動作するようになりました.. [here](http://3v4l.org/F0Sac) –

+0

どのバージョンのPHPをお使いですか?ほとんどの人は少なくとも5.3を持っており、コードは5.3以降で正常に動作しています。 – Paulpro

+0

私はPHP 5.5を使用しています。あなたは更新されたリンクを確認することができます。それはエラーを表示しています。 –

12

私はこれが役立つことを望みます:キーワード機能とそのパラメータの間にスペースが必要です。だから、これは動作するはずです:

$user_meta = array_map(function ($a) { return $a[0]; },$user_meta); 
、それは人間の可読性
+0

これは良い答えですが、「キーワード関数とそのパラメータの間にスペースがなければなりません。私はスペースを取り除いて問題がないので。 –

関連する問題