我的数组包含一系列数字1-100:
$range = range(1, 100);
我想循环并为每个值分配1-24。所以1 = 1,2 = 2,24 = 24,但是25 = 1,26 = 2,27 = 3等......
如何遍历$range
并将所述值应用于每个数字?
注意:我最好使用for
循环,但会采取任何有效的答案。
答案 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>";
}
}