如何在字符串中间添加内容?

时间:2016-08-18 09:29:18

标签: php html css

这是我的PHP代码:

foreach ( $sums as &$sums_value ) {
    if ( !empty($sums_value) ) { 
        $sums_value = sprintf("%+d",$sums_value);
    }
} unset($sums_value);

$sums包含一些[正面或负面]数字。以下是$sums输出的示例:

/*
array (
    [today] => +24
    [yesterday] => -6
    [in last week] => 0
    [in last month] => 9
)

我这样使用它:(我生成一个HTML)

$date = array ('today', 'yesterday', 'in last week', 'in last month');
foreach( $date as $item ) {
    $html .= '<span>'.$sums[$item].'</span>';
} echo $html;

/* output:
   <span>+24</span><span>-6</span><span>0</span><span>9</span>

好的,一切都很好。

那我的问题是什么?它是关于着色的。我想设置:

  • 红色到负数
  • 绿色至正数
  • 黑色到零数

所以我想要这个输出:

<span style="color:green">+24</span><span style="color:red">-6</span><span style="color:black">0</span><span style="color:green">9</span>

如您所见,我已向所有style="color:????"个动态添加<span>属性。我的意思是颜色取决于数量。我怎么能这样做?

4 个答案:

答案 0 :(得分:1)

你可以在循环中测试总和:

    CAST(regexp_replace(patient_id, ',' , '') AS INT)

答案 1 :(得分:1)

简单的php会做

echo 'style="color:';
if($sums[$item] == 0){ 
  echo 'black';
}
else if($sums[$item] > 0){
  echo 'green';
}
else{ 
  echo 'red';
}
echo '"';

答案 2 :(得分:1)

在你的foreach中你需要添加一个if语句。

foreach( $date as $item ) {
    If($item = 0){
          $html .= '<span style="color:black">' . $sums[$item] . '</span>';
    }else if($item>0){
           $html .= '<span style="color:green">' . $sums[$item] . '</span>';
    }else{
            $html .= '<span style="color:red">' . $sums[$item] . '</span>';
    }
} 

答案 3 :(得分:1)

我认为你可以在没有PHP的情况下做到这一点。只有CSS3

但如果你想使用php。看看示例

    function getColor($number) {
        if ($number == 0) {
             return 'black';
        } 
        if ($number > 0) {
             return 'green';
        } 
        if ($number < 0) {
             return 'red';
        } 
    }

    $date = array ('today', 'yesterday', 'in last week', 'in last month');
    foreach( $date as $item ) {
        $html .= '<span style="color:' . getColor($sums[$item])  . '">'.$sums[$item].'</span>';
    } echo $html;