2017-02-09 26 views
1

分配值I具有包含数字范围1-100的数组:遍历阵列为每一个第n项

$range = range(1, 100); 

我通过要循环和分配的1-24每个的值。所以1 = 1,2 = 2,24 = 24,但也是25 = 1,26 = 2,27 = 3等...

如何循环$range并将所述值应用于每个数字?

注意:我最好喜欢使用for循环,但会采取任何有效的答案。

+0

什么是你想要的输出? –

+0

你是什么意思 - > _并将所述值应用于每个数字?_ – jitendrapurohit

+0

@jitendrapurohit您知道如何循环遍历数组,将值应用于每个项目? –

回答

2

模运算符(%)就是答案

$range = range(1, 100); 
$rangeValues = array(); 

for ($i = 0; $i < count($range); $i++){ 
    // using modulo 25 returns values from 0-24, but you want 1-25 so I use ($i % 24) +1 instead which gives 1-24 
    $rangeValues[$range[$i]] = ($i % 24) +1; 
} 
+0

第一个答案,它的工作原理。非常感谢您的帮助@cashbee! –

+0

哈哈我只是测试我的答案,因为你的第一个评论,并认为自己:这不正是你想要的?无论如何,似乎是如此。很高兴帮助:)(我想你先拿出我未经编辑的答案) – Cashbee

1

尝试:PHP模运算符(%)。

//example loop 
$range = range(1, 100); 
$yourIndex = array(); 

for ($i = 0; $i < count($range); $i++){ 
    //$yourIndex will reset to 1 after each 25 counts in $range 
    $yourIndex[$range[$i]] = ($i + 1) % 25; 
} 
1
$range = range(1, 100); 
$offset = 1; 
$limit = 24; 

for($i = 0; $i < count($range); $i++) 
{ 
    $range[$i] = $offset+($i%$limit); 
} 
var_dump($range); 
1

为了让你需要的解决方案,你也可以使用下面的代码 -

$range = range(1, 100); 
for($i=0; $i<100; $i++){ 
    if($i < 24){ 
    echo $range[$i].' = '.($i+1);echo "<br>"; 
    }else if($i < 48){ 
    echo $range[$i].' = '.($i-23);echo "<br>"; 
    }else if($i < 72){ 
    echo $range[$i].' = '.($i-47);echo "<br>"; 
    }else if($i < 96){ 
    echo $range[$i].' = '.($i-71);echo "<br>"; 
    }else{ 
    echo $range[$i].' = '.($i-95);echo "<br>"; 
    } 
}