我有這樣一段代碼重新啓動一個PHP循環
foreach($mnthArrPtrn as $m => $mn)
{
if(!isset($catName)) {
$catVals = array();
$prevCat = $catName = $pntChrtQry[0]['CAT']['categoryname'];
$pntVals .= '{name:'.$catName.',data:[';
}else if($prevCat != $catName) {
$prevCat = $catName;
$catVals = array();
$pntVals .= '{name:'.$catName.',data:[';
}
foreach($pntChrtQry as $key => $val){
$catName = $val['CAT']['categoryname'];
if($prevCat != $catName){
continue 2;
}
echo '<br />$m::'.$m;
echo '<br />$mn::'.$mn;
echo '<br />$val::'.$val[0]['MNTH'];
if($m == $val[0]['MNTH'] || $mn == $val[0]['MNTH']){
$catVals[] = $val[0]['total'];
}
}
pr($catVals);
if(!isset($catName)){
$pntVals .= ']},';
}
$catName = $val['CAT']['categoryname'];
}
第一循環遍歷一個個月陣列,其被接合爲一個鍵值對。 我在這裏做的是獲得一個新的catName我繼續內部循環,但同時我想用$ prevCat重新啓動循環1,$ catName仍然保留它們的值。 這可能嗎?對不起如果這是一個愚蠢的問題。
我試圖將第一個轉換爲while語句並使用重置,但它沒有幫助我。
a)給你的變量,諸如$ month,$ months,$ category,$ values等的好名字。b)將這個分解爲多個清零函數,這段代碼使人瘋狂地閱讀。 c)如果您想將PHP數組轉換爲JSON數組,請使用原生函數。 – markus
沒有一種方法來重置extrnl循環? –
如果您需要重新啓動循環,請將'while'與'each'一起使用,並使用'reset'返回到數組的起始處。你不能重新啓動'foreach',否。 – halfer