[英]Turning if and Else Statement into something I can echo?
基本上,下面是我目前拥有和工作的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>'
而且我希望它能够回应当前的水平,它取决于它是否在不同的地方更低或相等,因为我不想回应它们目前所处的当前水平。
这样做
<?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
真的,为什么这样的事情呢? 你的逻辑错误:你将用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);
最好使用一些动态水平值。
$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;
所以你似乎想要达到的目的是将你的学分放到许多层面。
$level = ceil( ($credits + 1) / 25000);
if ($level < 0) $level = 0;
if ($level > 5) $level = 5;
$leveltext = 'LEVEL' + $level;
echo $leveltext;
但是,我认为您应该尝试运行您的代码,因为它将打印出来:LEVEL1LEVEL2LEVEL3LEVEL4LEVEL5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.