2017-07-31 106 views
0

我正在嘗試在HTML表格列中獲取數據,並使用PHP根據其值對其進行格式設置。該列跟蹤移動,所以如果它是一個正值,我想在該值之前添加一個向上的箭頭(↑)。如果是負數,我想用向下箭頭(↓)替換「 - 」。我已經設置了一個IF/ELSE語句來檢查數據的值。我可以得到向上的箭頭以顯示沒有問題,但是我無法按照我喜歡的方式格式化負值。我在Stack上研究了這個問題並開始使用str_replace。我現在設置的方式,我可以得到-2的負值,用↓ 2代替,但在↓ 2的旁邊,-2保留(如↓ 2 -2)。我有點理解爲什麼會發生這種情況,我只是不知道如何讓它做我想做的事情。這是我的IF語句:如何在這裏正確使用str_replace?

if ($row['move'] > 0) { 
    $arrow = '↑ '; 
} else if ($row['move'] < 0) { 
    $arrow = str_replace('-', '&#8595; ', $row['move']); 
} else { 
    $arrow = ''; 
} 

這裏是我如何打印我的數據(其中一些,以避免不相關的代碼)。 $ style改變文字的顏色:

echo "<td{$style}>" . $arrow.$row["move"] . "</td><td>" 

謝謝你提供任何幫助!

回答

3

我實際上不會使用str_replace,而是取其絕對值爲$row['move']

// decide which arrow to use 
if ($row['move'] > 0) { 
    $arrow = '&#8593; '; 
} else if ($row['move'] < 0) { 
    $arrow = '&#8595; '; 
} else { 
    $arrow = ''; 
} 

// remove the sign (if it's there) 
$move = abs($row['move']); 

// output 
echo "<td{$style}>{$arrow}{$move}</td><td>"; 
+0

else語句關閉後你還有一個額外的分號^。^另外,你的解決方案比我的好!但是我試圖按照OP的要求使用'str_replace':o – GrumpyCrouton

+1

oops。謝謝@GrumpyCrouton。我不知道這是否更好。只是一種不同的方式,但對我來說似乎有點整潔。 –

+0

是的,我同意它看起來更乾淨 – GrumpyCrouton