Вот мой фаворит. Кроме начальной проверки на то, недопустимо ли это (< 0, который Вы могли пропустить, если бы Вы знали, что будете только иметь>, =0 чисел передали в), это не имеет никаких циклов или условных выражений, и таким образом превзойдет большинство других методов по характеристикам. Это подобно ответу erickson, но я думаю, что мое постепенное уменьшение x вначале и добавление 1 в конце являются немного менее неловкими, чем его ответ (и также избегает условного выражения в конце).
/// Round up to next higher power of 2 (return x if it's already a power
/// of 2).
inline int
pow2roundup (int x)
{
if (x < 0)
return 0;
--x;
x |= x >> 1;
x |= x >> 2;
x |= x >> 4;
x |= x >> 8;
x |= x >> 16;
return x+1;
}
Дайте ему имя с []
на конце, например:
<select id="industryExpect" name="industryExpect[]" multiple="multiple">
<option value="1">item1</option>
<option value="2">item2</option>
<option value="3">item3</option>
</select>
Затем в массиве $ _ POST
вы получите массив всех выбранные параметры:
// assuming that item1 and item3 were selected:
print_r($_POST['industryExpect']);
/*
array
(
0 => 1
1 => 3
)
*/
Запуск файла Html. напр. a.html
<form action="process.php" method="post">
<select name="names[]" multiple="multiple">
<option value="john">john</option>
<option value="jack">jack</option>
</select>
<input type=hidden name=submitted>
<input type=submit name=submit>
</form>
Process.php:
<?php
print_r( $_POST['names'] );
?>