2016-06-22 3 views
-20

У меня есть викторина, вопросы из базы данных MySQL. Не могли бы вы помочь мне решить эту проблему?Добавить число в массив, используя PHP

Я хочу добавить (+1) к этому конкретному значению в массиве.

<input id="subjectid" name="subjectid[]" value="2" type="checkbox">maths 
    <input id="subjectid" name="subjectid[]" value="3" type="checkbox">science 
    <input id="subjectid" name="subjectid[]" value="5" type="checkbox">social science 
    <input id="subjectid" name="subjectid[]" value="9" type="checkbox">english 
    <input id="subjectid" name="subjectid[]" value="11" type="checkbox">computer 
    <input id="subjectid" name="subjectid[]" value="14" type="checkbox">ME 

<?php 
$sid=$_POST['subjectid']; 

if(!empty($sid)) { 
$newids = array(); 
    foreach($sid as $check) { 
      $newids[]=$check; 

    } 
} 

$totalcount=count($newids); 
$totalquestions='40'; 
$remainder=40 % $totalcount; 
$number=explode('.',(40/$totalcount)); 
$answer=$number[0]; 


if($remainder=='0'){ 
$newcount=$totalquestions/$totalcount; 
$a = array_fill_keys($newids, $newcount); 
}else{ 
$a = array_fill_keys($newids, $answer); 
} 



?> 

case 1) 

if i select 5 checkboxes subjects, quetions takes from db correct 40/5=8 


Array 
(
    [2] => 8 
    [3] => 8 
    [5] => 8 
    [9] => 8 
    [11] => 8 
) 

array=array('2'=>'8','3'=>'8','5'=>'8','9'=>'8','11'=>'8'); 

foreach($array as $k=>$v) 
{ 
    select * from where sujectid=$k rand() limit $v 
} 

-------------------------------------------------------------------------------------- 
case 2) 

if i select 6 checkboxes subjects, quetions takes from db correct 40/6, 6*6=36, remainaing 4 questions, 36+4=40 

Array 
(
    [2] => 6+1 
    [3] => 6+1 
    [5] => 6+1 
    [9] => 6+1 
    [11] => 6 
    [14] => 6 
) 

$array=array('2'=>'7','3'=>'7','5'=>'7','9'=>'7','11'=>'6','14'=>'6'); 

foreach($array as $k=>$v) 
{ 
    select * from where sujectid=$k rand() limit $v 
} 
+5

Это так элементарно я должен считать, что вы не делали никаких исследований и не предприняли никаких усилий, чтобы решить эту проблему самостоятельно –

+2

Что вы имеете в виду 'остаток 4'? –

ответ

1

Нечто подобное (прирост первых значений 4 массива):

$i = 0; 
foreach($arr as $k => $v) { 
    if (++$i > 4) break; // affect only first 4 elements 
    $arr[$k]++;   // increment by1 
} 
+0

iam добавление кода выше, можете ли вы плз проверить один раз. – sai

Смежные вопросы