2017-06-21 60 views
3

此代碼是做我想做的,但我認爲有一個更好的魅力 ,可以做幾行代碼,具體如果循環將是從1到下面的代碼1000從1到100的數字循環和每10個數字保存數字除以10

for ($i=1; $i <= 100; $i++) 
{ 
    if ($i <= 10) { 
     $id = 1; 
    } 
    elseif ($i > 10 && $i <= 20) { 
     $id = 2; 
    } 
    elseif ($i > 20 && $i <= 30) { 
     $id = 3; 
    } 
    elseif ($i > 30 && $i <= 40) { 
     $id = 4; 
    } 
    elseif ($i > 40 && $i <= 50) { 
     $id = 5; 
    } 
    elseif ($i > 50 && $i <= 60) { 
     $id = 6; 
    } 
    elseif ($i > 60 && $i <= 70) { 
     $id = 7; 
    } 
    elseif ($i > 70 && $i <= 80) { 
     $id = 8; 
    } 
    elseif ($i > 80 && $i <= 90) { 
     $id = 9; 
    } 
    elseif ($i > 90) { 
     $id = 10; 
    } 

    $array = ['id' => $id, 'order' => $i]; 

    Provider::create($array); 
} 
+5

瞭解什麼[模運算符(''%)](http://be2.php.net/manual/en/ language.operators.arithmetic.php)會幫助 –

+1

PS。與你標記的「Laravel」沒有任何關係;這是關於基本'PHP'(有一點點''數學'好措施) –

回答

2

這裏是您的解決方案:

for ($i=1; $i <= 1000; $i++) 
{ 
    $id = ceil($i/10); 
    $array = ['id' => $id, 'order' => $i]; 

    Provider::create($array); 
} 
+0

正是我想要的,謝謝:) –

+0

忘記添加;在$ id = ceil($ i/10)的末尾; –

+1

Opsssss!分號(;)添加 –

1

使用:

<?php 
$arr = array(); 
for ($i=1; $i <= 100; $i++) 
{ 
    $id = $i/10; 
    if ($i%10 == 0) { 
     echo "id: ".$id." Order: ".$i."\n"; 
     $arr[$id] = $i; 
    } 
} 
print_r($arr); 

輸出

id: 1 Order: 10 
id: 2 Order: 20 
id: 3 Order: 30 
id: 4 Order: 40 
id: 5 Order: 50 
id: 6 Order: 60 
id: 7 Order: 70 
id: 8 Order: 80 
id: 9 Order: 90 
id: 10 Order: 100 
Array 
(
    [1] => 10 
    [2] => 20 
    [3] => 30 
    [4] => 40 
    [5] => 50 
    [6] => 60 
    [7] => 70 
    [8] => 80 
    [9] => 90 
    [10] => 100 
) 

演示:Click Here

+0

檢查上面的代碼,並讓我知道是否有任何進一步的問題。 @Ahmed Al Bermawy – RJParikh

相關問題