正在处理PHP


Processing PHP

我有这个循环:

   $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)会使您的代码很难维护和理解。