2012-11-28 49 views
0

這裏是我的代碼PHP數組獲取和計算

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

如果我顯示(回聲$ 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外部for循環我得到

'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

請花一些時間來正確地格式化你的代碼,謝謝! –

+0

k dear..sorry我有點急,我會確保它不會再發生.. – Friend

回答

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]."),"; 
} 
+0

現在您可以使用$ Eqt_Sr來顯示「$ Eqt_Sr0 =($ Per_Wtg0- $ Eqt_Min0)」使用 – jkamizato

+0

非常感謝親愛的...讓我測試一下 – Friend

+0

如果我在外面顯示$ Eqt_Sr for循環它顯示爲'Array' :(如何解決這個問題? – Friend

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 
+0

非常感謝親愛的... iam通過javascripts bcos傳遞數組它的ajax頁面...多數民衆贊成它看起來凌亂的原因... – Friend