我有这个循环:
$diffe = $differenz*7;
$diff = 0;
$n = 0;
$an = $anzahl-1;
$z = 0;
$plus = $periode;
$oarray = array();
$sarray = array();
$parray = array();
$h = 0;
while ($n < $ortcount) {
foreach ($ortearray as $o) {
$oarray[] = $o;
}
$sarray[] = get_start_dates($star, $diff, $wochearray);
$diff += $diffe;
while ($h < $ortcount) {
$helpingstring= join(";",$sarray[$h]);
echo $h;
$sarrayhelp = explode(";", $helpingstring);
while ($z < $an) {
foreach ($sarrayhelp as $s) {
$parray[] = plustime($s, $plus);
}
$plus = $plus+$periode;
$z++;
}
$h++;
}
$n++;
}
并且需要以下内容:
多维数组"$sarray[]"的每个"子数组"都应该由plustime()函数和结果应保存到"$parray[]"中。
此时,只处理"$sarray[]"的第一个子数组。
任何帮助都将不胜感激。请帮忙!
生成递归函数:
function process(&$parray, $array, $plus){
foreach($array as $s) {
if(is_array($s)) {
// this is subarray
process($parray, $s, $plus);
continue ;
}
$parray[] = plustime($s, $plus);
}
}
.....
while ($z < $an) {
process($parray, $sarrayhelp, $plus);
..
请注意,错误的缩进和短变量($a, $az,$n, $an, $h, $z, $parray, $oarray, $diff, $diffe
)会使您的代码很难维护和理解。