2010-08-11 7 views
1

Итак, я создал форму, через функцию post, присылаю мне несколько значений. $_POST[groups] отправляет мне, используя 4 разных флажка значения 1, 2, 4 и 8. $_POST[retailgroup] делает то же самое, но только значения 1, 2 и 4. Проблема в том, что я хочу, чтобы они складывались вместе, а затем отправляли сумма значений в таблицу MySQL. я успел сделать один, используя следующий цикл по каждому элементу:

foreach ($_POST as $val) { 
    foreach ($val as $key=>$final_val) { 
     $group = $group+$final_val; 
    } 
} 

Проблема начинается тогда, когда мне нужно, чтобы эти две части друг от друга, так как они собираются в отдельные столбцы в таблице.

Чтобы быть ясным, я назначил разные группы разных значений (всегда принимая значение prev, равное двум, точно так же, как счетное двоичное число), как 1, 2, 4 и 8. Объединив их вместе, я могу определить членство в группах по делая вычитание «назад». Поскольку существуют разные группы, я хочу, чтобы они были в двух отдельных областях таблицы.

Надеюсь, все ясно.

Любая идея о том, как это сделать?

ответ

0

попробовать

foreach ($_POST[groups] as $key=>$final_val) { 
    //do stuff for first group 
} 
foreach ($_POST[retailgroup] as $key=>$final_val) { 
    //do stuff for second group 
} 

и после того, как вы можете сделать все, что вы хотите с переменными получили от петель

3

вы хотите использовать:

$groups_sum = array_sum($_POST['groups']); 
$rgroups_sum = array_sum($_POST['retailgroups']); 

Это будет быстрее и яснее, чем foreach петля в этом случае.

+1

Вы избили меня к нему на несколько секунд. – Joseph

0
$groups = array_sum($_POST['groups']); 
$retailGroups = array_sum($_POST['retailgroup']); 

Вы можете проверить членство, как это вместо того, вычитая назад:

$groupAdmin = 4; 
if($groups & $groupAdmin) { 
    // is admin 
} 
Смежные вопросы