2014-02-12 2 views
0

Привет У меня есть эта строка кода нижеПредельное количество взрываются элементов в списке

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

Это, в основном, не присваивает никакого значения для элементов в списке, если нет ничего другого в $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 
Смежные вопросы