用文字替换数字

Replace numbers with text

我在 Moodle 中获取用户 table 的数据:

            $data[] = $view-look;
            $data[] = $view->tyres;
            $data[] = $view->insidelook;
            $data[] = $review->motor;

并且数据是针对每一列中的 statusbad (1)good(2)very good (3)superb(4) 的状态相同。

目前只显示数字。如何显示每一列的 badgood 等而不是数字?

您可以使用 switch 语句或 if 语句。这真的取决于你。我不知道你使用什么变量来表示状态,所以我假设它是 $status.

switch($status) {
   case 1:
       $status_text = "bad"
       break;
   case 2:
       $status_text = "good"
       break;
   case 3:
       $status_text = "very good"
       break;
   case 4:
       $status_text = "superb"
       break;
   // Have a default value just in case.
   default:
       $status_text = "not set"
       break;
}

// Add it to the data array.
$data[] = $status_text;

这是一个简短的解决方案,创建一个关联数组(符号table),并获取每个数字对应的文本

$statuses = array(
    "1" => "bad",
    "2" => "good",
    "3" => "very good",
    "4" => "superb"
);

$data[] = $statuses[$status];

最简单的方法

    $data = [1,1,1,2,4,2,3,3,1,3,3,2];

    $mapping = [1 => 'bad', 2 => 'good', 3 => 'very good', 4 => 'superb'];

    foreach ($data as $key => $value) {
        $data[$key] = $mapping[$value]; 
    }

您将得到与文本内容相同的数组 $data,而不是数字。

您也可以使用 shorthand ternary operator

$status_text = $status == 1 ? "bad" : ($status == 2 ? "good":($status == 3 ? "very good" :($status == 4 ? "superb" :"not set")));