我有一个正在导入的数据表,特定行的内容如下所示...
500,1000,2000,4000,5000,8000,10000,12000,无限
每个数字代表兆字节,其中 8000 是 8000mb 或 8gb 我需要一个函数,如果它大于 3 个,它将删除数字的最后 999 个零,然后在数字末尾添加"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";
}
}
即使我认为检查 $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,000,然后将其向下舍入。
fuunction gigaplex($data) {
if (!is_numeric($data)) {
return $data;
} elseif ($data >= 1000) {
return floor($data/1000) . "GB";
} else {
return $data . "MB";
}
}
这个工作得很好。
function gigaplex($data) {
if($data == "UNLIMITED") {
echo 'unlimited';
} else if ($data >= 1000) {
$data /= 1000;
echo $data."GB";
} else {
echo $data."MB";
}
}