我正在尝试显示从一个php页面传递到另一个php页面的数组的值,但我只获得最后一个元素值。当我使用print_r()检查数组内容时,它显示所有值。 这是我需要显示的值 -
<tr class="bgcolor_02">
<?php
if(is_array($subject_array))
{
foreach($subject_array as $each_subject)
{
?>
<td width="9%"> <?php echo ucfirst($each_subject['es_subjectname']);?> </td>
<?php } } ?>
</tr>
<tr>
<?php
$inc=0;
foreach($subject_array as $each_subject)
{
?>
<td> <?php echo $array_roll[$inc]; ?> </td>
<?php $inc++;
}?>
</tr>
以下是获取和传递值的代码 -
if(count($errormessage)==0)
{
$cout=0;
if(isset($classid))
{
$subject_array=$db->getRows("SELECT * FROM es_subject WHERE es_subjectshortname='".$classid."'");
if(is_array($subject_array))
{
foreach($subject_array as $each_subject)
{
$array_subject[$each_subject['es_subjectid']]=$each_subject['es_subjectname'];
$sub_id=$each_subject['es_subjectid'];
$roll_array=$db->getRow("SELECT es_exam_detailsid FROM es_exam_details WHERE academicexam_id='".$exam_id."' AND subject_id='".$sub_id."'");
$array_roll[$cout]=$roll_array['es_exam_detailsid'];
print_r($array_roll[$cout]." ");
}
}
}
}
通过这段代码,我得到像这样的输出
英语地理会计电算经济学
33个
输出必须为何
英语地理会计电算经济学
26 27 31 32 33
由于print_r(),我能够在页面顶部看到值;这是这样的
26 27 31 32 33
在这个问题上需要一些帮助,为什么我没有得到所有值
答案 0 :(得分:1)
由于糟糕的代码格式和无意义的变量名称,不得不准确地说出发生了什么,但我猜你的问题可能在于:
$array_roll[$cout]=$roll_array['es_exam_detailsid'];
您永远不会更改$cout
的值,因此您只是不断覆盖值和数组索引位置0。
答案 1 :(得分:0)
foreach($subject_array as $each_subject)
{
$array_subject[$each_subject['es_subjectid']]=$each_subject['es_subjectname'];
$sub_id=$each_subject['es_subjectid'];
$roll_array=$db->getRow("SELECT es_exam_detailsid FROM es_exam_details WHERE academicexam_id='".$exam_id."' AND subject_id='".$sub_id."'");
$array_roll[$cout]=$roll_array['es_exam_detailsid'];
$cout++; //HERE YOU MUST HAVE++
}
并且会很好。