@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, и уже по результатам проверки, сортируй как тебе нужно..
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы