2014-06-19 34 views
5

我知道這個主題有很多問題,但沒有一個處理這個問題(據我所知)。循環PHP嵌套數組 - 將值提取到刀片視圖中(Laravel)

我在Laravel項目中有一個PHP數組(通過Guzzle響應返回FYI)。

的PHP陣列

$users = array(2) { 
    ["error"]=> 
    bool(false) 
    ["spirits"]=> 
    array(2) { 
    [0]=> 
    array(2) { 
     ["id"]=> 
     string(1) "1" 
     ["name"]=> 
     string(5) "Foo" 
    } 
    [1]=> 
    array(2) { 
     ["id"]=> 
     string(1) "2" 
     ["name"]=> 
     string(3) "Bar" 
    } 
    } 
} 

我只是想提取「ID」和「名」下面的鍵,在視圖中使用,但我有點爲難。我已經嘗試了下面的建議,但無法完成。

How to Flatten a Multidimensional Array?

PHP foreach with Nested Array?

我也看着array_walk_recursive

任何幫助將是真棒和讚賞!我希望能夠在Laravel使用這2個鍵,像這樣:

控制器

return View::make('users')->with('users',$users); 

查看

@foreach ($users as $key => $user) 
    {{ $user["id"] }} 
    {{ $user["name"] }} 
@endforeach 

回答

4

你可以試試這個:

@foreach ($users['spirits'] as $user) 
{{ $user["id"] }} 
{{ $user["name"] }} 
@endforeach 

最好檢查返回的re

$users = 'Get it from somewhere...'; 
if(!$users['error']) { 
    return View::make('users')->with('users', $users); 
} 
else { 
    // Show an error with a different view 
} 
+1

謝謝!我失蹤的部分是'$ users ['spirits']' – Pete

+0

不客氣:-) –

1

的情況下,您的用戶總是存儲在spirits -key您$users變量您只需:SULT在你的控制器之前,您使用的是這樣的事情所以會出現在你看來沒有任何錯誤發送到視圖可以修改你的@foreach -loop如下:

@foreach ($users['spirits'] as $user) 
    {{ $user['id'] }} 
    {{ $user['name'] }} 
@endforeach 

否則,您可以編輯從控制器的返回值。這意味着你根本就改線:

return View::make('users')->with('users',$users);

return View::make('users')->with('users',$users['spirits']);

在這種情況下,你不必訪問您的error - 鍵。