Php 修改数组后查找新密钥
我有这个Php 修改数组后查找新密钥,php,arrays,next,Php,Arrays,Next,我有这个 array([0] => 4, [1] => 6, [2] => 8, [3] =>11); $value = 6;//(refers to [1]) 在核心代码之后,我的阵列可能会发生变化,例如: array([0] => 4, [1] => 8, [2] =>11); 如果已删除$value键($newvalue=8),我希望将变量($newvalue)设置为下一个值,或者如果6仍在该数组的值中,则保持不变($newvalue=6) 注
array([0] => 4, [1] => 6, [2] => 8, [3] =>11);
$value = 6;//(refers to [1])
在核心代码之后,我的阵列可能会发生变化,例如:
array([0] => 4, [1] => 8, [2] =>11);
如果已删除$value
键($newvalue=8
),我希望将变量($newvalue
)设置为下一个值,或者如果6
仍在该数组的值中,则保持不变($newvalue=6
)
注意:如果$value
是最后一个(11),并且11已被删除,$newvalue
应设置为4
总结如下:
$value = 11; /* array([0] => 4, [1] => 6, [2] => 8); */ $newvalue = 4;
$value = 11; /* array([0] => 4, [1] => 6, [2] => 8, [3] => 11); */ $newvalue = 11;
假设数组值始终按升序排列:
if (in_array($value, $the_array)) {
$newvalue = $value;
} else if ($value > max($the_array)) {
$newvalue = $the_array[0];
} else {
foreach ($the_array as $v) {
if ($v > $value) {
$newvalue = $v;
break;
}
}
}
你已经说明了你想要什么样的行为,但到目前为止你尝试了什么来实现它?如果什么都没有,你一定要仔细阅读数据结构和算法。它会给你一些很好的见解来解决这样的问题。你的大脑受伤了吗???想知道你想要做什么的时候我的大脑很痛。我不太明白你到底在问什么,但似乎你可以从中受益,而且你不是真的在问问题,你给出了一个规范。太棒了!我们需要更多的信息,更多的代码…和一个适当的问题。(除非这是你的作业。)