用文字替换数字
Replace numbers with text
我在 Moodle
中获取用户 table
的数据:
$data[] = $view-look;
$data[] = $view->tyres;
$data[] = $view->insidelook;
$data[] = $review->motor;
并且数据是针对每一列中的 status
。 bad (1)
、good(2)
、very good (3)
到 superb(4)
的状态相同。
目前只显示数字。如何显示每一列的 bad、good 等而不是数字?
您可以使用 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")));
我在 Moodle
中获取用户 table
的数据:
$data[] = $view-look;
$data[] = $view->tyres;
$data[] = $view->insidelook;
$data[] = $review->motor;
并且数据是针对每一列中的 status
。 bad (1)
、good(2)
、very good (3)
到 superb(4)
的状态相同。
目前只显示数字。如何显示每一列的 bad、good 等而不是数字?
您可以使用 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")));