我如何在这里正确使用str_replace?

时间:2017-07-31 20:41:06

标签: php

我正在尝试在HTML表格列中获取数据,并根据它的值使用PHP格式化它。该列跟踪移动,因此如果它是一个正值,我想在值之前添加一个向上的箭头(↑)。如果它是负数,我想用向下的箭头(↓)替换' - '。我已经设置了一个IF / ELSE语句来检查数据的值。我可以让向上箭头显示没有问题,但我无法按照我喜欢的方式格式化负值。我已经在Stack上研究了这个问题并开始使用str_replace。我现在设置它的方式,我可以得到像-2这样的负值,用↓2替换,但是在↓2旁边,-2仍然存在(就像这个↓2 -2)。我有点理解为什么会这样,我只是不知道如何让它做我想要的。这是我的IF声明:

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>"

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分: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>";