2017-02-09 6 views
1

У меня есть массив, содержащий диапазон чисел 1-100:петли через массив, чтобы присвоить значение для каждого элемента п-я

$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

haha ​​Я просто тестировал свой ответ из-за вашего первого комментария там и подумал про себя: разве это не было именно то, что вы хотели? во всяком случае, похоже. Рад помочь :) (я думаю, вы сначала взяли мой неотредактированный ответ) – Cashbee

1

Try: 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>"; 
    } 
}