这是我的代码
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;
}
如果我显示(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];
}
如果我显示(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
之外显示这个来解决这个问题?
答案 0 :(得分: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]."),";
}
答案 1 :(得分: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