提问人:Poobalan 提问时间:3/26/2020 更新时间:4/1/2020 访问量:398
按顺序排列列表
Arrange a list in the sequence order
问:
我需要列表序列顺序的逻辑
我们有一个数组值 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>";
}
答:
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),代码已被编辑
评论
if(5 < 2)
if(4 < 2)
false
if(1 < 2)
true