循环遍历数组为每个第n项分配值

时间:2017-02-09 11:52:37

标签: php arrays loops for-loop

我的数组包含一系列数字1-100:

$range = range(1, 100);

我想循环并为每个值分配1-24。所以1 = 1,2 = 2,24 = 24,但是25 = 1,26 = 2,27 = 3等......

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

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

4 个答案:

答案 0 :(得分: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; 
}

答案 1 :(得分:1)

尝试:php modulo operator(%)。

//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;
}

答案 2 :(得分:1)

$range = range(1, 100);
$offset = 1;
$limit = 24;

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

答案 3 :(得分: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>";   
  }
}