基本上,下面是我目前拥有并运行的PHP,并且“转换”完美,但我确实想把它放在一个已经有效的字符串中。
$level0 = 0;
$level1 = 24999;
$level2 = 49999;
$level3 = 74999;
$level4 = 99999;
$level5 = 124999;
if ($myallcreadits < $level0) {
echo('LEVEL0'); }
if ($myallcreadits < $level1) {
echo('LEVEL1'); }
if ($myallcreadits < $level2) {
echo('LEVEL2'); }
if ($myallcreadits < $level3) {
echo('LEVEL3'); }
if ($myallcreadits < $level4) {
echo('LEVEL4'); }
if ($myallcreadits < $level5) {
echo('LEVEL5'); }
即我的例子是在页面下方进一步实现以下示例:
$details='<div id="level">'.$level.'</div>'
我希望它能够回应当前的水平,它取决于它是否在不同的地方更低或相等,因为我不想回应它们目前所处的当前水平。
答案 0 :(得分:3)
这样做
<?php
$level0 = 0;
$level1 = 24999;
$level2 = 49999;
$level3 = 74999;
$level4 = 99999;
$level5 = 124999;
$myallcreadits = 24543;
if ($myallcreadits < $level0) {
$level='LEVEL0'; }
elseif ($myallcreadits < $level1) {
$level='LEVEL1'; }
elseif ($myallcreadits < $level2) {
$level='LEVEL2'; }
elseif ($myallcreadits < $level3) {
$level='LEVEL3'; }
elseif ($myallcreadits < $level4) {
$level='LEVEL4'; }
elseif ($myallcreadits < $level5) {
$level='LEVEL5'; }
echo $details='<div id="level">'.$level.'</div>'; //Prints LEVEL1
答案 1 :(得分:1)
真的,为什么会这样呢?你的逻辑错误:你会用new覆盖你的旧值,因为如果$myallcreadits < 49999
那么显然也是< 124999
。另外,使用数组 - 如果你有50个级别怎么办?
$levels = [
'LEVEL0'=>0,
'LEVEL1'=>24999,
'LEVEL2'=>49999,
'LEVEL3'=>74999,
'LEVEL4'=>99999,
'LEVEL5'=>124999
];
//$myallcreadits=50000;
$filter = array_filter($levels, function($x) use ($myallcreadits)
{
return $x<$myallcreadits;
});
end($filter);
$result = key($filter);
$details='<div id="$result">'.$result.'</div>';
更新:
如果您希望您的等级为步骤25000(显然减去1),请使用:
$values = array_map(function($x)
{
return $x-1;
}, range(0, 125000, 25000));
$values[0] = 0;
$keys = array_map(function($x)
{
return 'LEVEL'.$x;
}, range(0, count($values)-1));
$levels = array_combine($keys, $values);
答案 2 :(得分:0)
最好使用一些动态水平值。
$levels = array(1 => 0, 24999, 49999, 74999, 99999, 124999);
$myallcreadits = 60000;
$current_level = 0;
foreach($levels as $index => $level)
{
if ($myallcreadits > $level)
$current_level = $index;
}
echo $current_level;
答案 3 :(得分:0)
所以你似乎想要达到的目的是将你的学分放到多个层面。
$level = ceil( ($credits + 1) / 25000);
if ($level < 0) $level = 0;
if ($level > 5) $level = 5;
$leveltext = 'LEVEL' + $level;
echo $leveltext;
但是,我认为你应该尝试运行你的代码,因为它会打印出来:LEVEL1LEVEL2LEVEL3LEVEL4LEVEL5