按顺序排列列表

Arrange a list in the sequence order

提问人:Poobalan 提问时间:3/26/2020 更新时间:4/1/2020 访问量:398

问:

我需要列表序列顺序的逻辑

我们有一个数组值 6,5,4,3,2,1 的列表。在此列表中,我需要将 5 替换为 2。然后我需要对订单进行排序。

例如: 取列表中的 5 并将值替换为 2

然后现在我们有一个这样的列表 6,2,4,3,2,1 所以现在在这个列表中,我们没有顺序。 我需要用下面的方法求解序列

首先,我们需要检查结果是否为 NO (5 < 2) 因此,我们需要取列表 4 中的下一个值 现在我们需要像这样检查

步骤1:

if(4 < 2) ->> (这里 2 被替换,值 4 是列表中的下一个值) 不

然后我们需要将 +1 添加到该数字 4+1 = 5 现在我们得到的列表是这样的 6,2,5,3,2,1

步骤 2 :

然后我们需要检查取下一个数字 3,然后检查 if(3 < 2) ->> (这里 2 被替换,值 3 是列表中的下一个值) 不 然后我们需要将 +1 添加到该数字 3+1 = 4 现在我们得到的列表是这样的 6,2,5,4,2,1

步骤3:

然后我们需要检查取下一个数字 2,然后检查 if(2 < 2) ->> (这里 2 被替换,值 2 是列表中的下一个值) 不 然后我们需要将 +1 添加到该数字 2+1 = 3 现在我们得到的列表是这样的 6,2,5,4,3,1

步骤4:

然后我们需要检查取下一个数字 2,然后检查 if(1 < 2) ->> (这里 2 被替换,值 1 是列表中的下一个值) 是的 然后退出循环。

请帮我解决这个问题 序列顺序

我在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>";

}
PHP 排序 顺序

评论

0赞 Umer Abbas 3/26/2020
例如:在列表中取一个 5 并将值替换为 2,这里的起始值可能不同?,如果不同,您想根据所考虑值的索引/位置对值执行这些步骤?
0赞 Poobalan 3/26/2020
起始值我可以取列表中的任何值,它可以是 5、3 或 6
0赞 Umer Abbas 3/26/2020
一开始这是假的,我们去下一个值,现在是假的,但我们在 4 上加 1,接下来我们添加数字并替换值,但是我们什么时候替换 2 并将 1 放在最后,循环结束?是吗?if(5 < 2)if(4 < 2)falseif(1 < 2)true
0赞 Poobalan 3/26/2020
是的,这是正确的

答:

0赞 azizlutfi 3/26/2020 #1

我是编程新手,我会尝试回答。也许这样的东西就是你需要的

$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;
        }
    }
}

评论

0赞 Poobalan 3/28/2020
但是上面的代码不适用于这个$currentval$replaveval $list = array(6,5,4,3,2,1);$currentval = 6;$replaceval = 1;
0赞 azizlutfi 3/29/2020
如果 $currentval = 6,您想要什么$list值;$replaceval = 1 ?
0赞 Poobalan 4/1/2020
结果应该是这样的 1,6,5,4,3,2
0赞 azizlutfi 4/1/2020
将 ($indexCurrent != null) 替换为 ($indexCurrent != $i),代码已被编辑