2016-07-28 97 views
0

我有一個代碼來做到這一點:PHP獲得價值,然後把它放到一個變量

<?php 
$xml=simplexml_load_file("d2ladder.xml") or die("Error: Cannot create object"); 
$xp1 = 4439; 
$xp2 = 8439; 
?> 

<?php for ($i = 0; $i < 100; $i++) { 
<?php $xp = $xml->ladder[12]->char[$i]->experience; 
     $xppercent = $xp/$xp2*100; ?> 

     <div style="width: <?php echo $xppercent; ?>px">teste</div> 
<?php echo $xml->ladder[12]->char[$i]->level; ?> 
<?php } ?> 

"$xp2"的配方需要由$xml->ladder[12]->char[$i]->level

設置,如果級別= 1然後用計算$xp1 如果等級= 2的計算與$xp2,去,我有99個XPS固定而變化1-99級以這種方式

有解決這個簡單的方法計算?謝謝

+0

對不起,我不完全明白你想要什麼。 '$ xp1'在哪裏使用? –

+0

$ xp1將用於級別1,$ xp2用於級別2 ... $ xp99用於級別99 ..需要類似$ xp [level]的值,並返回$ xpX(1-99),然後獲得固定值計算百分比 – b1n

+0

我明白了。看到我的回答 –

回答

0

如果你不想使用數組$xp1$xp2等。 ,你總是可以使用variable variables

$xml=simplexml_load_file("d2ladder.xml") or die("Error: Cannot create object"); 
$xp1 = 4439; 
$xp2 = 8439; 
// And so on ... 

for ($i = 0; $i < 100; $i++) { 
    $xp = $xml->ladder[12]->char[$i]->experience; 
    $xppercent = $xp/${'xp' . xml->ladder[12]->char[$i]->level}*100; 
    echo "<div style=\"width:$xppercent;px\">teste</div>"; 
    echo $xml->ladder[12]->char[$i]->level; 
} 
+0

但是有了這個,你可以用99個不必要的變量來氾濫你的命名空間。閱讀起來很困難。 –

+0

@ u-nik我知道,我只是提供一個替代答案。另外,瞭解變量變量總是很好,你會驚訝有多少所謂的「開發者」不知道他們。 – roberto06

+0

是的,多數民衆贊成= D –

0

所以它就像當level = 1時,$ xp1,level 2 - $ xp2,level 3 - $ xp1?

如果是這樣的情況下,使用模:

//if 1, number uneven, if 0, number even. uneven = $xp1, even = $xp2; 
$isEven = $xml->ladder[12]->char[$i]->level % 2; 
if ($isEven === 0) { 
    //use $xp1 
} else { 
    //use $xp2 
} 

讓我知道,如果這是你的意思。

+0

哦,對不起,也許我需要提供更多的細節。我將有一個「xps」1到99的固定值列表,以及每個xp的1-99個等​​級。 – b1n

+0

使用一個數組來保存所有XP的像'$ xp [$ level]' –

+0

這樣的級別Hmm就是這樣,有一個數組,我正在探索它,但如果你可以幫助一些例子會更好!謝謝 – b1n

0

也許這就是你需要:

$xml = simplexml_load_file("d2ladder.xml") or die("Error: Cannot create object"); 
$xps = [ 
    1 => 4439, 
    2 => 8439, 
    // ... and so on 
]; 

for ($i = 0; $i < 100; $i++) { 
    $xp  = $xml->ladder[12]->char[$i]->experience; 
    $xppercent = $xp/$xps[$xml->ladder[12]->char[$i]->level] * 100; 

    echo "<div style=\"width:$xppercent;px\">teste</div>"; 
    echo $xml->ladder[12]->char[$i]->level; 
} 

如果u使用舊的PHP,改變陣列的符號來$xps = array(/*...*/);

+0

得到這個錯誤:警告:非法偏移類型在C:\ Users \ Fabio \ Documents \ 9-SITES \ d2evo \ ladder.php在線114 警告:在C: \ Users \ Fabio \ Documents \ 9-SITES \ d2evo \ ladder.php在114行..也許問題是....看到我的評論roberto06的帖子 – b1n

+0

如果您的xps沒有定義或零發生零Devision你已經在'$ xps'數組中定義了所有可用的級別? –

相關問題