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;
}

表示する場合 (echo $Per_Wtg;) $per_wtg for ループの外側で取得します

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

さて、私はもう1つのコードを持っています

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

if i display(echo $min;) $min を for ループの外に出すと、

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

しかし今、もう1つの配列変数を表示する必要があります

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

これを行うには、もう1つの配列を取得する必要がある場合があります$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 に答える