#php
Вопрос:
Я хочу сгенерировать диапазон чисел на основе общего числа пользователей в моей базе данных
<?php
//Let's assume the total number of users is 100
foreach( range(0, 100, 20) as $number){
$ranges=$number.'-'.($number 20);
echo'<button>'.$ranges.'</button>';
}
//Result:
0-20
20-40
40-60
60-80
80-100
100-120
?>
Что мне было нужно, так это 0-20, 21-40, 41-60, 61-80, 81-100.
Мне нужно остановиться на 100, то есть на общем количестве пользователей, а не на 100-120
или если у вас есть лучший подход
Комментарии:
1. Как насчет
100 - 1
того, чтобы сделать конец не включающим?2. Есть ли причина, по которой это не должно быть 0-19, 20-39?..
3. @ggorlen Хорошая идея…но это означает, что мне нужно будет поместить его в массив, а затем изменить его на 1-100, я думаю
4. @Найджел Рен, Это может быть.
5. Таким образом, ваша первая группа (0-20) будет на единицу больше, чем каждая из следующих групп (21-40,…)?
Ответ №1:
Итак, два вопроса, с которыми нужно разобраться:
- Остановитесь на 100. Затем вы просто немного уменьшаете значение остановки цикла (например, уменьшаете на 1, т. е. на 99).
- Начните на единицу больше, чем конечное значение предыдущего диапазона, за исключением первого диапазона, который должен начинаться с 0. Вы можете добавить
!!$number
, чтобы достичь этого. Это логическое значение, которое истинно, когда$number
не равно нулю, и приведет к 0 или 1, именно к тому, что необходимо.
Код:
foreach(range(0, 100 - 1, 20) as $number) {
$ranges = ($number !!$number) . '-' . ($number 20);
echo '<button>' . $ranges . '</button>';
}
Комментарии:
1. Боже мой! Так идеально.