[英]More efficient way to set a variable?
我最近創建了一個if語句腳本,該腳本根據數字表示的內容設置變量。 在意識到腳本很長並且很可能可以以更有效的方式完成腳本之后,我在互聯網上查看並沒有發現太多結果。 這是我的劇本
if ($row[position] == 1){
$variable = 1;
} elseif ($row[position] == 2){
$variable = 1;
} elseif ($row[position] == 3){
$variable = 2;
} elseif ($row[position] == 4){
$variable = 2;
} elseif ($row[position] == 5){
$variable = 3;
} elseif ($row[position] == 6){
$variable = 3;
} elseif ($row[position] == 7){
$variable = 4;
} elseif ($row[position] == 8){
$variable = 4;
} elseif ($row[position] == 9){
$variable = 5;
} elseif ($row[position] == 10){
$variable = 5;
} elseif ($row[position] == 11){
$variable = 6;
} elseif ($row[position] == 12){
$variable = 6;
} elseif ($row[position] == 13){
$variable = 7;
} elseif ($row[position] == 14){
$variable = 7;
} elseif ($row[position] == 15){
$variable = 8;
} elseif ($row[position] == 16){
$variable = 8;
}
如您所見,這是一個非常基本的模式。
1 = 1
2 = 1
3 = 2
4 = 2
5 = 3
6 = 3
等等...
我希望完成的工作不是很多,但我只是想知道我應該如何做。 謝謝。
這應該為你工作
<?php
$row["position"] = 4; //example
//if (($row["position"] >= 1) && ($row["position"] <= 16) ) -> if you only want to set the variable if it's between 1 and 16 or something else use this if statement
$variable = ceil($row["position"] / 2);
echo $variable;
?>
您可以使用%(mod)運算符和除法(/)來解決問題
這是訣竅,
1.使位置均勻。 即如果位置已經是偶數,否則加1使其變為偶數。
2將位置除以2得到var $ variable的期望值
$pos = $row[position];
if ($pos % 2 == 1) //Check for odd
{
$pos = $pos + 1; //odd+1 =even (converting odd as even)
}
$variable = $pos/2;
例:
$ row [position] = 3 => $ pos是奇數,因此使它等於3 + 1,所以4 => variable = 4/2 => 2
$ row [position] = 4 => $ pos保持原樣=> variable = 4/2 => 2
$ row [position] = 5 => $ pos是奇數,因此將其設為5 + 1,所以6 => variable = 6/2 => 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.