我有這個PHP代碼,3 foreach循環和最後一個或可能是第二個導致數組重置在某些時候,我找不到原因?PHP Foreach嵌套循環和陣列本身在中間重置
PHP代碼:
<?php
$months = range(1,12);
foreach($accountsubs as $subs){
?>
<tr style="display:none;" class="tablerow paddingzero childoverview <?php echo $classj;?>">
<td width="40" align="center"><?php echo $subs['codename'];?></td>
<td><?php echo $subs['subclass'];?></td>
<?php
$itemcodes = $db->fetch_all_array("SELECT * FROM bg_itemcodes WHERE accountclass='".$subs['ID']."' and cparent = '".$ac['ID']."' ");
$counter = 1;
foreach($itemcodes as $code){
foreach($months as $ms){
echo $counter++;
$makedate = strtotime($jdate.'-'.$ms.'-1');
$sdebits = $db->single("SELECT sum($currency) as $currency FROM bg_journal WHERE factory='$jfactory'
AND section = '".$ac['ID']."' AND record_section !='record' AND itemcode = '".$code['ID']."'
AND FROM_UNIXTIME(jtime, '%Y%m') = '".date('Ym',$makedate)."' AND inouts = 'out' ");
$scredits = $db->single("SELECT sum($currency) as $currency FROM bg_journal WHERE factory='$jfactory'
AND section = '".$ac['ID']."' AND record_section !='record' AND itemcode = '".$code['ID']."'
AND FROM_UNIXTIME(jtime, '%Y%m') = '".date('Ym',$makedate)."' AND inouts = 'in' ");
$totalsdc = $scredits[$currency] - $sdebits[$currency];
?>
<td class="alignright"><?php echo correctvalue($totalsdc,$jcurrency);?></td>
<?php
}// foreach months
}// foreach item codes
?>
</tr>
<?php
}// foreach sub class
,這裏是你可以看到它是如何重置3日環路但是它避開了在第二循環計數器觀看源。
<tr style="display:none;" class="tablerow paddingzero childoverview showclass_8">
<td width="40" align="center">103</td>
<td>Other Sales</td>
1 <td class="alignright"></td>
2 <td class="alignright"></td>
3 <td class="alignright"></td>
4 <td class="alignright"></td>
5 <td class="alignright"></td>
6 <td class="alignright"></td>
7 <td class="alignright"></td>
8 <td class="alignright"><span style="float:left; color:#444;">؋</span>1,000.00</td>
9 <td class="alignright"></td>
10 <td class="alignright"></td>
11 <td class="alignright"></td>
12 <td class="alignright"></td>
</tr>
<tr class="tablerow paddingzero overviewtitle">
<td align='center'><strong>400</strong></td>
<td style="text-transform:capitalize;">expenses <a href="javascript:void(0);" data-id="showclass_10" class="addplus plus">+</a></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong><span style="float:left; color:#444;">؋</span>-59,200.00</strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
<td class="alignright"><strong></strong></td>
</tr>
<tr style="display:none;" class="tablerow paddingzero childoverview showclass_10">
<td width="40" align="center">401</td>
<td>Raw Materials</td>
1 <td class="alignright"></td>
2 <td class="alignright"></td>
3 <td class="alignright"></td>
4 <td class="alignright"></td>
5 <td class="alignright"></td>
6 <td class="alignright"></td>
7 <td class="alignright"></td>
8 <td class="alignright"></td>
9 <td class="alignright"></td>
10 <td class="alignright"></td>
11 <td class="alignright"></td>
12 <td class="alignright"></td>
13 <td class="alignright"></td>
14 <td class="alignright"></td>
15 <td class="alignright"></td>
16 <td class="alignright"></td>
17 <td class="alignright"></td>
18 <td class="alignright"></td>
19 <td class="alignright"></td>
20 <td class="alignright"><span style="float:left; color:#444;">؋</span>-58,900.00</td>
21 <td class="alignright"></td>
22 <td class="alignright"></td>
23 <td class="alignright"></td>
24 <td class="alignright"></td>
</tr>
<tr style="display:none;" class="tablerow paddingzero childoverview showclass_10">
<td width="40" align="center">402</td>
<td>Office Supplies</td>
1 <td class="alignright"></td>
2 <td class="alignright"></td>
3 <td class="alignright"></td>
4 <td class="alignright"></td>
5 <td class="alignright"></td>
6 <td class="alignright"></td>
7 <td class="alignright"></td>
8 <td class="alignright"><span style="float:left; color:#444;">؋</span>-200.00</td>
9 <td class="alignright"></td>
10 <td class="alignright"></td>
11 <td class="alignright"></td>
12 <td class="alignright"></td>
</tr>
'$ months'定義在哪裏? – Bankzilla
$ months = range(1,12); – codedudey
在不知道數據結構實際上是什麼樣的情況下,難以調試,因爲我們知道它完全按照它應該做的那樣進行。 – Bankzilla