Php 根据阵列设置回波格式

Php 根据阵列设置回波格式,php,Php,我有这段代码,可以找到谁登录并显示用户名及其成员状态 while ($row = mysqli_fetch_assoc($whoisloggedin)) { $usersArray = $row['status']; $usersArray2 = $row['username']; echo '<pre>'; echo $usersArray," ",$usersArray2; echo

我有这段代码,可以找到谁登录并显示用户名及其成员状态

    while ($row = mysqli_fetch_assoc($whoisloggedin)) {
        $usersArray = $row['status'];    
        $usersArray2 = $row['username'];
        echo '<pre>';
        echo $usersArray," ",$usersArray2;
        echo '</pre>';
    }
while($row=mysqli\u fetch\u assoc($whoisloggedin)){
$usersArray=$row['status'];
$usersArray2=$row['username'];
回声';
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>'
}
echo$usersArray,“,$usersArray 2; 回声';
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>'
}
}
现在显示了4个用户名,因为有4个用户登录,我想知道是否可以更改文本颜色。所以它现在可能会说“Admin Kenazz”或“VIP ryemck”,我想知道我是否能做到“Admin”是红色,“VIP”是金色等等


I

假设这是HTML输出,而不是控制台,您可以尝试以下类似操作:

print '<span class="'.$color.'">';
使用类似于的CSS行

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>';
}
编辑:根据@David Jones solution合并$color变量

尝试应用检查

$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>';
}
if($row['somthing']=='Admin'){
回显“.$row['username']”;
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>'
}
} else if($row['somthing']=='VIP'){ 回显“.$row['username']”;
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>'
}
} 否则{ 回显“.$row['username']”;
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>'
}
}

等等……

你可以这样做

$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>';
}
while($row=mysqli\u fetch\u assoc($whoisloggedin)){
$usersArray=$row['status'];
$usersArray2=$row['username'];
如果($usersArray=='Admin'){
$color='red';
}
else if($usersArray==“VIP”){
$COLOR='gold';
}
echo'

'.$usersArray.'.$usersArray2.

';
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>'
}
}
最简单的方法是使用替换函数或命名数组键:

$rename=array(“Admin”=>“
,“VIP”=>”);
while($row=mysqli\u fetch\u assoc($whoisloggedin)){
$usersArray=$row['status'];
$usersArray2=$row['username'];
回声';
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>'
}
echo$rename[$usersArray]。$usersArray.“$usersArray 2.”; 回声';
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>'
}
}
现在,第二个变体使用replace函数

$find=array(“Admin”、“VIP”);
$replace=array(“Admin”
“VIP”);
while($row=mysqli\u fetch\u assoc($whoisloggedin)){
$usersArray=$row['status'];
$usersArray2=$row['username'];
回声';
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>'
}
echo str_replace($find,$replace,$usersArray)。“.$usersArray2.”; 回声';
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>'
}
}
您可以这样做…您可以逐个打印数组元素并将样式应用于特定元素。
如果
否则
会变得非常乏味,速度非常快,
开关
在这里可能会更好。此外,您没有默认案例。否则,固溶体!这是非常接近难以维持只有两个案件!请查看my或@David Jones的答案,以获得更具可扩展性的解决方案。问题中包含“管理员是红色的,vip是金色的,等等”,这表明情况远不止两个。在这种情况下,此代码比其他代码更具可读性answers@Kybored我不同意-
切换
是一种更好的构造方法,适用于更多情况。如下所述,我认为
如果
否则
不是最佳选择,因为再过几次之后,它将变得无法维护。不过,
$color
变量使用得很好!另外,缺少一个默认案例。@hexblot感谢您的贡献:)但只会有1个,可能还有2个cases@hexblot是的,切换也是一种很好的方法,尽管如果有更多的切换,我会为每个切换创建一个css类,这样就不需要if语句或切换了。