0

这是我的代码

for ($i=0; $i<$Percentile["Parameter_length"]; $i++)
{
  $parameters.="Eqt_Param".$i."=".$Percentile["Eqt_Param".$i]; 
  $Per_Wtg.="Per_Wtg".$i."=".$Percentile["Eqt_Param".$i]/100;
}

如果我在 for 循环外显示(echo $Per_Wtg;)$per_wtg 我得到

'Per_Wtg0=0.03 Per_Wtg1=0 Per_Wtg2=0 Per_Wtg3=0'

好吧,我还有一个代码

for ($i=0; $i<$Percentile["min_length"]; $i++)
{
    $min.="Eqt_Min".$i."=".$Percentile["Eqt_Min".$i];
}

如果我在 for 循环外显示(echo $min;)$min 我得到

'Eqt_Min0=1.00Eqt_Min1=1.00Eqt_Min2=1.00Eqt_Min3=1.00'

但现在我需要再显示一个数组变量

$Eqt_Sr0=($Per_Wtg0-$Eqt_Min0) ,
$Eqt_Sr1=($Per_Wtg1-$Eqt_Min1) , 
$Eqt_Sr2=($Per_Wtg2-$Eqt_Min2) , 
$Eqt_Sr3=($Per_Wtg3-$Eqt_Min3) 

为了做到这一点,我可能不得不再拿一个数组$Eqt_Sr

但是无论如何如何在外面显示这个for loop来解决这个问题?

4

2 回答 2

1

只需这样做:

$Eqt_Sr = array();

for ($i=0; $i<$Percentile["Parameter_length"]; $i++)
{
  $parameters.="Eqt_Param".$i."=".$Percentile["Eqt_Param".$i]; 
  $Per_Wtg.="Per_Wtg".$i."=".$Percentile["Eqt_Param".$i]/100;

  /*Look the array $Eqt_Sr*/
  $Eqt_Sr[$i] = $Percentile["Eqt_Param".$i]/100;
}

然后:

for ($i=0; $i<$Percentile["min_length"]; $i++)
{
    $min.="Eqt_Min".$i."=".$Percentile["Eqt_Min".$i];

    // Add here
    $Eqt_Sr[$i] =  $Eqt_Sr[$i] - $Percentile["Eqt_Min".$i];
}

要显示数组:

for($i=0; $i<count($Eqt_Sr); $i++){
   $output .= "Eqt_Sr".$i."=(".$Eqt_Sr[$i]."),";
}
于 2012-11-28T21:02:12.160 回答
0

您的代码绝对是一团糟,无法说出您实际在寻找什么,但我会猜测一下。

不确定为什么要使用“Parameter_length”和“min_length”,因为您似乎希望它们始终是相同的值 - 但是如果它们不同会发生什么?我下面的代码处理min_length >= Parameter_length, 但不是min_length < Parmeter_length

脚本

<?php

// Data assumed from inspection of original post
$Percentile = array
(
        'Eqt_Param0' => 3.00,
        'Eqt_Param1' => 0.00,
        'Eqt_Param2' => 0.00,

        'Parameter_length' => 3,

        'Eqt_Min0' => 1.00,
        'Eqt_Min1' => 1.00,
        'Eqt_Min2' => 1.00,

        'min_length' => 3,
);

$Parameters = array();
$Per_Wtg    = array();
$Eqt_Min    = array();
$Eqt_Sr     = array();

for ($i = 0; $i < $Percentile['Parameter_length']; $i++)
{
    $param = $Percentile["Eqt_Param{$i}"];
    $wtg   = $param / 100;

    $Parameters[$i] = $param;
    $Per_Wtg[$i]    = $wtg;
}

// TODO What if 'min_length' != 'Parameter_length' ??
for ($i = 0; $i < $Percentile['min_length']; $i++)
{
    $param = $Percentile["Eqt_Param{$i}"];
    $min   = $Percentile["Eqt_Min{$i}"];

    $Eqt_Min[$i] = $min;
    $Eqt_Sr[$i]  = ( array_key_exists($i, $Parameters) ? $Parameters[$i] : 0 ) - $min;
}

print " Parameters => " . join(', ', $Parameters) . "\n";
print " Per_Wtg    => " . join(', ', $Per_Wtg   ) . "\n";
print " Eqt_Min    => " . join(', ', $Eqt_Min   ) . "\n";
print " Eqt_Sr     => " . join(', ', $Eqt_Sr    ) . "\n";

输出

 Parameters => 3, 0, 0
 Per_Wtg    => 0.03, 0, 0
 Eqt_Min    => 1, 1, 1
 Eqt_Sr     => 2, -1, -1
于 2012-11-28T21:22:58.727 回答