Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 修改数组后查找新密钥_Php_Arrays_Next - Fatal编程技术网

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

你已经说明了你想要什么样的行为,但到目前为止你尝试了什么来实现它?如果什么都没有,你一定要仔细阅读数据结构和算法。它会给你一些很好的见解来解决这样的问题。你的大脑受伤了吗???想知道你想要做什么的时候我的大脑很痛。我不太明白你到底在问什么,但似乎你可以从中受益,而且你不是真的在问问题,你给出了一个规范。太棒了!我们需要更多的信息,更多的代码…和一个适当的问题。(除非这是你的作业。)