2014-02-12 67 views
0

嗨,我有以下極限爆炸元素的列表

list($tag1, $tag2, $tag3, $tag4, $tag5) = array_pad(explode(',', $new_shout_tags, 5), 5, ""); 

IT這行代碼,如果沒有別的在$new_shout_tags基本分配沒有價值在列表中的元素個數。所以基本上,如果我有

$new_shout_tags = "asd, asdf, asdfg"; 

然後名單將

$tag1 = "asd"; 
$tag2 = "asdf"; 
$tag3 = "asdfg"; 
$tag4 = ""; 
$tag5 = ""; 

然而這是如果用戶輸入

$new_shout_tags = "asd, asdf, asdfg, asdaf, asdafa, afads, asdasfd"; 

也就是7個elemnts例如那麼爆炸造成這一切都很好在列表中

$tag1 = "asd"; 
$tag2 = "asdf"; 
$tag3 = "asdfg"; 
$tag4 = "asdaf"; 
$tag5 = "asdafa, afads, asdasfd"; 

我如何使它不包括最後2個或5個以上的用戶輸入的內容,只包括前5個。

感謝

回答

1

使用垃圾變量。

list($tag1, $tag2, $tag3, $tag4, $tag5, $garbage) = 
    array_pad(explode(',', $new_shout_tags, 6), 6, ""); 
+0

很巧我甚至不認爲 – Arken

+0

這是偉大的,其中的數據來自於塊處理列表,你可以簡單地打出你需要在時間的比特數,剩下的在垃圾/餘下的變量來處理。 – Sammitch

1

這應該工作:

$v1=explode(',', $new_shout_tags); // with no limit 
$v2=array_slice($v1,0,5); 
$v3=array_pad($v2, 5, ""); 
list($tag1, $tag2, $tag3, $tag4, $tag5) = $v3