Php数组获取和计算

时间:2012-11-28 20:48:44

标签: php javascript html arrays function

这是我的代码

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之外显示这个来解决这个问题?

2 个答案:

答案 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