【问题标题】:How can I add something in the middle of a string?如何在字符串中间添加一些东西?
【发布时间】:2016-08-18 17:36:03
【问题描述】:

这是我的 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>

如您所见,我为所有&lt;span&gt;s 添加了一个style="color:????" 属性,它是动态的。我的意思是颜色取决于数字。我该怎么做?

【问题讨论】:

  • 所以创建一些if 语句

标签: php html css


【解决方案1】:

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

$date = array ('today', 'yesterday', 'in last week', 'in last month');
foreach( $date as $item ) {
    $sum = $sums[$item];
    $color = '';

    if ($sum < 0) {
        $color = 'red';
    } elseif ($sum > 0) {
        $color = 'green';
    } else {
        $color = 'black';
    }

    $html .= '<span style="color:'.$color.';">'.$sums[$item].'</span>';
} echo $html;

【讨论】:

    【解决方案2】:

    简单的php就可以了

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

    【讨论】:

      【解决方案3】:

      在您的 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>';
          }
      } 
      

      【讨论】:

        【解决方案4】:

        我认为您可以在没有 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;
        

        【讨论】:

          猜你喜欢
          • 2020-02-23
          • 1970-01-01
          • 1970-01-01
          • 2020-05-15
          • 2012-08-11
          • 2022-09-23
          • 1970-01-01
          • 1970-01-01
          • 2013-10-20
          相关资源
          最近更新 更多