2013-08-01 52 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); 

“解析错误:语法错误,意外T_FUNCTION,预计 ')' 在”

here is the test link showing error

+4

你的$ user_meta数组的定义是无效的PHP阵列,它的的print_r()输出,格式为人类可读性 –

+0

附:内联匿名函数只能在PHP 5.3+中工作 –

+0

@Paulpro为什么要回滚格式更改? – jmattheis

回答

10

有没有错array_map线,但是之前的一切都是错误的。这是不是PHP代码的print_r的输出。比较您在发布的两个链接中如何定义数组。

+0

我得到同样的错误,当我通过数组与参数..我只能通过明确调用函数使其工作.. [这里](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

这是一个很好的答案,除了“在关键字函数和它的参数之间必须有一个空格”。因为我删除了空间并没有问题。 –