2014-08-28 90 views
0

是否有可能在字符串連接中使用foreach在字符串連接中使用foreach

類似如下:

return '<td>'. 
      '<div class="form-group">'. 
       '<select class="form-control">'. 
        /*This*/ foreach($values as $v){return .'<option>'.$v.'</option>'.;} 
       '</div>'. 
      '</div>'. 
     '</td>'; 

我想做到這一點都在一起,甚至沒有創建一個變量。

+0

'foreach'不是一個函數,所以我不知道return語句有任何意義 – 2014-08-28 17:45:57

+0

@true,真的,我的錯誤。 – TioTorres 2014-08-28 17:50:43

回答

6

不可以,但你可以更聰明:

... 
implode("",array_map(function($v) {return "<option>".$v."</option>"},$values)). 
... 
+1

如果'values'爲空? – Sugar 2014-08-28 17:46:31

+0

@ClémentMalet固定以更好地處理這種情況。 – 2014-08-28 17:47:13

+0

Niet the Dark Absol,如果我想檢查'$ v == $ n',如果是,它會連接選中它?我試過'return'':'>')。$ v。'';',但沒有成功。 – TioTorres 2014-08-28 17:55:18

0

您可以先創建你的字符串,然後將其添加到您的最終的字符串。

$text = ""; 
foreach($values as $v) 
{ 
    $text .= '<option>'.$v.'</option>'; 
} 

return '<td>'. 
      '<div class="form-group">'. 
       '<select class="form-control">'. 
        $text . 
       '</div>'. 
      '</div>'. 
     '</td>';