2013-08-01 83 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

這是一個很好的答案,除了「在關鍵字函數和它的參數之間必須有一個空格」。因爲我刪除了空間並沒有問題。 –