根据数组设置回波格式


Format echo depending on array

我有这样的代码,它可以查找登录者并显示用户名及其成员状态。

    while ($row = mysqli_fetch_assoc($whoisloggedin)) {
        $usersArray = $row['status'];    
        $usersArray2 = $row['username'];
        echo '<pre>';
        echo $usersArray," ",$usersArray2;
        echo '</pre>';
    }

现在显示4个用户名,因为有4个用户登录,我想知道是否可以更改文本颜色。所以它现在可能会说"管理员Kenazz"或"VIP ryemck",我想知道我是否能做到"管理员"是红色的,"VIP"是金色的等等?

I

您可以这样做。

while ($row = mysqli_fetch_assoc($whoisloggedin)) {
    $usersArray = $row['status'];    
    $usersArray2 = $row['username'];
    if ($usersArray == 'Admin') {
        $colour = 'red';
    }
    else if ($usersArray == 'VIP') {
        $colour = 'gold';
    }
    echo '<p style="color: '.$colour.'">'.$usersArray.' '.$usersArray2.'</p>';
}

尝试应用检查

if($row['somthing'] == 'Admin') {
  echo '<span style="color:red">'.$row['username'].'</span>';
}
else if($row['somthing'] == 'VIP') {
  echo '<span style="color:#fff">'.$row['username'].'</span>';
}
else {
  echo '<span style="color:#f00">'.$row['username'].'</span>';
}

等等…

最简单的方法是使用替换函数或命名数组键:

$rename=array("Admin"=>"<span style='color:red'>"
,"VIP"=>"<span style='color:yellow'>");  
while ($row = mysqli_fetch_assoc($whoisloggedin)) {
    $usersArray = $row['status'];    
    $usersArray2 = $row['username'];
    echo '<pre>';
    echo $rename[$usersArray].$usersArray" ".$usersArray2."</span>";
    echo '</pre>';
}

现在使用替换功能的第二个变体

$find=array("Admin","VIP");  
$replace=array("<span style='color:red'>Admin"
,"<span style='color:yellow'>VIP");  
while ($row = mysqli_fetch_assoc($whoisloggedin)) {
    $usersArray = $row['status'];    
    $usersArray2 = $row['username'];
    echo '<pre>';
    echo str_replace($find,$replace,$usersArray)." ".$usersArray2."</span>";
    echo '</pre>';
}

假设这是HTML输出,而不是控制台,您可以尝试类似的方法:

while ($row = mysqli_fetch_assoc($whoisloggedin) ) {
  $usersArray = $row['status'];    
  $usersArray2 = $row['username'];
  print '<pre>';
  switch( $usersArray ) {
    case 'something':
      $color = "red";
      break;
    case 'somethingelse':
      $color = "blue"
      break;
    default:
      $color = "white";
      break;
  }
  print '<span style="color: '.$color.'">'.$usersArray.' '.$usersArray2.'</span>';
  print '</pre>'
}

显然,最好将style标记替换为类,并将颜色添加到CSS中,例如

print '<span class="'.$color.'">';

带有类似的CSS行

span.blue { color: blue; }

编辑:根据@David Jones解决方案合并$color变量