我在table
中获取了用户Moodle
的数据:
$data[] = $view-look;
$data[] = $view->tyres;
$data[] = $view->insidelook;
$data[] = $review->motor;
数据适用于每列中的status
。从bad (1)
,good(2)
,very good (3)
到superb(4)
的状态相同。
现在只显示数字。如何为每列显示错误,良好等数字而不是数字?
答案 0 :(得分:3)
最简单的方式
$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而不是数字。
答案 1 :(得分:0)
您可以使用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;
答案 2 :(得分:0)
这是一个简短的解决方案,创建一个关联数组(符号表),并获取与每个数字对应的文本
$statuses = array(
"1" => "bad",
"2" => "good",
"3" => "very good",
"4" => "superb"
);
$data[] = $statuses[$status];
答案 3 :(得分:0)
您也可以使用简写ternary
operator
进行此操作。
$status_text = $status == 1 ? "bad" : ($status == 2 ? "good":($status == 3 ? "very good" :($status == 4 ? "superb" :"not set")));