PHP Echo число с использованием else, если и больше или меньше, чем - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть скрипт, который похож на базу данных whois.Эта функция возвращает просмотры сайта, и я хочу получить эхо между значением.

Как я могу отобразить и вернуть один результат?Если число скажем 4000, оно должно вернуть только 1k-10k

Строки имеют вид1013 *

Код:

$siteTotalViews=1000000;
if($siteTotalViews <= 100){
    echo '0-100';
}
if($siteTotalViews <= 1000){
    echo '100-1k';
}
if($siteTotalViews <= 10000){
    echo '1k-10k';
}
if($siteTotalViews <= 100000){
    echo '10k-100k';
}
if($siteTotalViews <= 1000000){
    echo '100k-1 mil';
}
if($siteTotalViews <= 2000000){
    echo '1 mil-2 mil';
}
if($siteTotalViews <= 5000000){
    echo '2 mil-5 mil';
}
if($siteTotalViews <= 10000000){
    echo '5 mil-10 mil';
}
if($siteTotalViews >= 10000000){
    echo '10 mil +';
}

Ответы [ 4 ]

2 голосов
/ 11 февраля 2012

Вы можете поместить все ограничения и соответствующий им текст в массив, а затем перебрать обратный массив, чтобы найти соответствующий вывод. (break в цикле, когда достигнут предел)

$siteTotalViews=1000000;
$outputs = array(
  0 => '0-100',
  100 => '100-1k',
  1000 => '1k-10k',
  10000 => '10k-100k',
  100000 => '100k-1 mil',
  1000000 => '1 mil-2 mil',
  2000000 => '2 mil-5 mil',
  5000000 => '5 mil-10 mil',
  10000000 => '10 mil +' );
$outputs = array_reverse($outputs);

foreach ($outputs as $limit => $text) {
  if ($siteTotalViews >= $limit) {
    echo $text;
    break;
  }
}
2 голосов
/ 11 февраля 2012

Вы можете создать функцию, которая возвращает интервал.Когда функция нажимает оператор return, она прекращает выполнение, поэтому вы получите только одно значение назад.Затем вы можете вызвать функцию и повторить результат:

function getInterval($siteTotalViews) {

  if($siteTotalViews <= 100){
      return '0-100';
  }
  if($siteTotalViews <= 1000){
      return '100-1k';
  }

  ...

}

echo getInterval(1000);
2 голосов
/ 11 февраля 2012

Быстрое исправление:

$siteTotalViews=1000000;
if($siteTotalViews <= 100){
    echo '0-100';
}
//next else is new
else if($siteTotalViews <= 1000){
    echo '100-1k';
}
//next else is new
else if($siteTotalViews <= 10000){
    echo '1k-10k';
}
//next else is new
else if($siteTotalViews <= 100000){
    echo '10k-100k';
}

Лучше исправить:

$names=array(
  100 => '0-100',
  1000 => '100-1k',
  10000 => '1k-10k',
  ...
}

foreach ($names as $count=>$name)
  if ($siteTotalViews<$count) break;

echo $name;
0 голосов
/ 11 февраля 2012
$siteTotalViews=1000000;
 if($siteTotalViews >= 0 && $siteTotalViews <=100 ){    
echo '0-100'; } 
if($siteTotalViews >=101 && $siteTotalViews <= 1000){    
 echo '100-1k'; } 
.....
   if($siteTotalViews >= 10000000){     
echo '10 mil +'; } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...