2016-08-18 4 views
0

Hier ist meine PHP-Code:Wie kann ich etwas in der Mitte eines Strings hinzufügen?

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

$sums enthält einige [positiv oder negativ] Zahlen. Hier ist ein Beispiel für $sums ‚s Ausgang:

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

Und ich benutze es wie folgt aus: (I erzeugen eine 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> 

Ok, alles in Ordnung.


Nun, was ist meine Frage? Es geht um Färbung. Ich möchte setzen:

  • rote Farbe auf negative Zahlen
  • grüne Farbe positive Zahl
  • schwarze Farbe auf Null Zahl

Deshalb möchte ich diese Ausgabe:

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

Wie Sie sehen, habe ich eine style="color:????" Eigenschaft zu all diesen <span> s hinzugefügt, die dynamisch ist. Ich meine, dass die Farbe von der Anzahl abhängt. Wie kann ich das machen?

+0

So erstellen Sie einige 'if' Anweisungen –

Antwort

1

Sie können nur die Summe in der Schleife testen:

$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; 
1

einfach php

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

In Ihrem foreach tun müssen Sie eine if-Anweisung hinzuzufügen.

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>'; 
    } 
} 
1

Ich denke, dass Sie es ohne PHP tun können. nur CSS3

aber wenn Sie PHP verwenden möchten. Werfen Sie einen Blick auf Beispiel

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; 
Verwandte Themen