@freshik312

Как реализовать задачу на php?

Здравствуйте !
есть массив, в его значениях идет строка данных:
строка данных
[
string(1) => '1st, 2nd, 535',
string(2) => '2nd, 2nd, 13',
string(3) => '3rd, 2nd, 442',
]


Нужно цифры 535, 13, 442 Обработать как цифровая строка т.е. 1-535(string(1)), 536-548(string(2)), 548-990(string(3)), потом зарандомить (1-990), и в зависимости от полученного числа обрабатывать string(1), string(2) или string(3).

Подскажите как я могу это реализовать ?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Пример
$strings = [
    '1st, 2nd, 535',
    '2nd, 2nd, 13',
    '3rd, 2nd, 442',
];

function findString($number, array $strings, $criterionStart=1) {
    $found = null;
    $criterionEnd = $criterionStart;
    
    foreach ($strings as $string) {
        list(2=>$criterionIncrement) = explode(', ', $string);
        $criterionEnd += $criterionIncrement;

        if ($number>=$criterionStart && $number<$criterionEnd) {
            $found = $string;
            break;
        }
        
        $criterionStart = $criterionEnd;
    }
    
    return $found;
}

findString(rand(1,990), $strings);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ivasenkoartem
Если я правильно понял, то.. сначала зарандомь число (1-990), потом сделай проверку через if, и уже по результатам проверки, сортируй как тебе нужно..
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽