2013-05-06 232 views
1

我有以下多維數組名爲$響應,它看起來像這樣當我做了print_r的多維數組的PHP foreach我需要使用一個鍵嗎?

array

我foreach循環看起來是這樣,但它不工作:

foreach ($responses as $response) { 
    $output[$response['poll_response_id']] = array(
     'response' => $response['response'], 
     'response_vote_count' => 0, 
     'voters' => '' 
    ); 
} 

我會喜歡當我做print_r時獲得這樣的輸出($輸出)

output array

回答

2

你可以試試這個:

$output = array(); 
foreach ($responses as $key => $response) { 
    $output[$key] = array(
     'response' => $response[$key], 
     'response_vote_count' => 0, 
     'voters' => '' 
    ); 
} 

如果它不能正常工作,請做「$迴應」,而不是「print_r的」一「的var_dump」,因爲我們並不認爲這個變量是如何精確定義。

+0

嗨antoox,你的代碼完美的作品。非常感謝您花時間幫助我解決這個問題。我花了很多時間試圖自己解決這個問題,並在這個過程中學到了很多東西。 – 2013-05-06 14:32:11

3

似乎是一個簡單的變換對我說:

$out = array_map(function($response) { 
    return array(
    'response' => current($response), 
    'response_vote_count' => 0, 
    'voters' => '', 
); 
}, $responses); 
+0

謝謝你的時間。 – 2013-05-06 14:30:24