我有一个数据表导入,特定行的内容看起来像这样......
500, 1000, 2000年, 4000, 5000, 8000, 10000, 12000, 无限
每个数字代表兆字节,其中8000是8000mb或8gb我需要一个功能,如果它大于999,它将敲掉数字的最后3个零,然后在数字的末尾添加“GB”,如果不超过999将“MB”添加到原始数字的末尾。所以我最终得到每个细胞,例如500MB或8GB - 我还需要在小写情况下回复“无限制”的功能,如果案例是“无限”,这本来很容易去年,但我真的生锈了我的PHP在一分钟,需要一个复习课程。你能救我吗?
继承人我已经写过的代码虽然不起作用......
function gigaplex($data) {
if ($data = 300) {
echo "300MB";
} elseif ($data = 500) {
echo "500MB";
} elseif ($data = 1000) {
echo "1GB";
} elseif ($data = 2000) {
echo "2GB";
} elseif ($data = 3000) {
echo "3GB";
} elseif ($data = 4000) {
echo "4GB";
} elseif ($data = 5000) {
echo "5GB";
} elseif ($data = 8000) {
echo "8GB";
} elseif ($data = 10000) {
echo "10GB";
} elseif ($data = 12000) {
echo "12GB";
} else {
echo "unlimited";
}
}
答案 0 :(得分:0)
即使我认为检查$data
是否大于999并且从变量中删除最后3个字符不是一个好主意,这正是您想要的:
function gigaplex($data) {
if($data > 999) {
$data = substr($data, 0, -3);
$data .= "GB";
} else if($data == 'UNLIMITED') {
return 'UNLIMITED';
} else {
$data .= "MB";
}
return $data;
}
我更喜欢这个:
function gigaplex($data) {
if($data >= 1000) {
$data /= 1000;
return $data . "GB";
} else if($data == 'UNLIMITED') {
return 'UNLIMITED';
} else {
return $data . "MB";
}
}
答案 1 :(得分:0)
将数字除以1,000,然后将其四舍五入。
fuunction gigaplex($data) {
if (!is_numeric($data)) {
return $data;
} elseif ($data >= 1000) {
return floor($data/1000) . "GB";
} else {
return $data . "MB";
}
}
答案 2 :(得分:0)
这个完美无缺..
function gigaplex($data) {
if($data == "UNLIMITED") {
echo 'unlimited';
} else if ($data >= 1000) {
$data /= 1000;
echo $data."GB";
} else {
echo $data."MB";
}
}