Расположить список в порядке последовательности - PullRequest
0 голосов
/ 26 марта 2020

Мне нужен лог c для порядка следования для списка

У нас есть список значений массива 6,5,4,3,2,1. В этом списке мне нужно заменить 5 на 2. Затем мне нужно упорядочить порядок.

Например: возьмите 5 в списке и замените значение на 2

Тогда теперь мы имеем список вроде этого 6,2,4,3,2,1 Так что теперь в этом списке у нас нет последовательности заказов. Мне нужно решить последовательность orde в следующем методе:

Сначала нам нужно проверить, если (5 <2) результат НЕТ. Поэтому нам нужно принять следующее значение в списке. 4 Теперь нам нужно проверить как это </p>

Шаг 1:

если (4 <2) - >> (здесь 2 заменяется, значение 4 является следующим значением в списке) Нет

тогда нам нужно добавить +1 к этому числу 4 + 1 = 5 Теперь список у нас выглядит следующим образом: 6,2,5,3,2,1

Шаг 2:

Тогда нам нужно проверьте следующий номер 3, затем проверьте, если (3 <2) - >> (здесь 2 заменяется значение 3 является следующим значением в списке) Нет, нам нужно добавить +1 к этому числу 3 + 1 = 4 Теперь список мы выглядим так: 6,2,5,4,2,1

Шаг 3:

Затем нам нужно проверить следующее число 2, затем проверить, если (2 <2) - >> (здесь 2 заменяется значением 2 является следующим значением в списке) Нет, тогда нам нужно добавить +1 к этому числу 2 + 1 = 3 Теперь список у нас выглядит примерно так: 6,2,5,4,3, 1

Шаг 4:

Затем нам нужно проверить, взять следующий номер 2, n проверьте, если (1 <2) - >> (здесь 2 заменено, значение 1 является следующим значением в списке) Да, затем выйдите из l oop.

Пожалуйста, помогите мне в этом методе, чтобы решить порядок следования

Я пробовал с приведенным ниже кодом в PHP

$list = array(6,5,4,3,2,1);
$currentval = 5;
$replaceval = 2;


foreach (array_keys($list) as $index => $key) {
    // first, get current item
    echo $items = $list[$key];
    // now get next item in array
        $next = null;
        if($currentval >= $items){
            if (array_key_exists($index + 1, array_keys($list))) {
                $next = $list[array_keys($list)[$index + 1]];
            }
        }
        echo "Next".$next."<br>";

}

1 Ответ

0 голосов
/ 26 марта 2020

Я новичок в программировании, я постараюсь ответить. Может быть, что-то вроде этого вам нужно

$indexCurrent = null;
for ($i=0; $i < sizeof($list); $i++) { 
    if ($list[$i] == $currentval) {
        if ($list[$i] >= $replaceval) {
            $list[$i] = $replaceval;
            $indexCurrent = $i;
        }
    } elseif ($indexCurrent != $i) {
        if ($list[$i] >= $replaceval) {
            $list[$i] = $list[$i]+1;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...