我有以下 ifelse 結構,對我來說很好。但是,現在我必須添加一些行,我想知道是否有辦法將其更改為回圈,以減少代碼行。
if ($class_number == 0) {$klassliste = array();}
elseif ($class_number == 1) {$klassliste = array(1);}
elseif ($class_number == 2) {$klassliste = array(1,2);}
elseif ($class_number == 3) {$klassliste = array(1,2,3);}
elseif ($class_number == 4) {$klassliste = array(1,2,3,4);}
elseif ($class_number == 5) {$klassliste = array(1,2,3,4,5);}
elseif ($class_number == 6) {$klassliste = array(1,2,3,4,5,6);}
elseif ($class_number == 7) {$klassliste = array(1,2,3,4,5,6,7);}
uj5u.com熱心網友回復:
絕對可以。
簡單的方法,使用 PHP 的range函式:
$class_number = 7;
$klassliste = range(1, $class_number);
var_dump($klassliste);
演示:https ://3v4l.org/9tfVm
為了完整/解釋,根據您的要求使用回圈的顯式方式(但不是真正必要的,因為range會為您完成):
$klassliste = array();
$class_number = 7;
for ($i = 1; $i <= $class_number; $i )
{
$klassliste[] = $i;
}
var_dump($klassliste);
演示:https ://3v4l.org/NLaI4
uj5u.com熱心網友回復:
不需要 if...else 或回圈。只需使用range():
$class_number = 5;
$klasslist = [];
if ($class_number) {
$klasslist = range(1,$class_number);
}
print_r($klasslist);
見https://3v4l.org/ekIBM
uj5u.com熱心網友回復:
有幾種可能性:
$klassliste = [];
for ($i = 0; $i < $class_number; $i ) {
$klassliste[] = $i 1;
}
或使用 1liner
$klassliste = $class_number === 0 ? [] : range(1, $class_number);
見https://3v4l.org/QhFpG
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431558.html
上一篇:在React中組合陣列和嵌套陣列
下一篇:如何回圈3個陣列并合并到1個陣列
