获取连续数字数组的数字

时间:2016-12-18 12:34:59

标签: php arrays

让我们说我在PHP中有以下数组:

$array1 = array(5,6);
$array2 = array(89,90,91);
$array3 = array(75,76,77,78);
$array4 = array(3);
$array5 = array(65,64,63);

我需要一个函数来获取数组中数字的数字,输出应该如下:

$array1around = getAround($array1); // Result: array(4, 7);
$array2around = getAround($array2); // Result: array(88, 92);
$array3around = getAround($array3); // Result: array(74, 79);
$array4around = getAround($array4); // Result: array(2,4);
$array5around = getAround($array5); // Result: array(62,65);

是否可以不玩-1和+1分钟和最大?我希望看到实现这一目标的最佳方法。

3 个答案:

答案 0 :(得分:3)

function getAround($array)
{
  return [min($array) - 1 ,max($array) + 1] ;
}

这是你需要的代码,当然如果你有一些循环运行它们的数组。

答案 1 :(得分:2)

function getAround(array $a) {
  if (count($a) <= 1) {
    return $a;
  }

  sort($a);

  return [$a[0] - 1, $a[count($a) - 1] + 1];
}

但最好在接受的答案中使用min()max()函数,以获得更好的效果。

答案 2 :(得分:1)

在你的情况下(排序顺序的元素):

function getAround($array)
{
  return [$array[0] - 1, $array[count($array) - 1] + 1);
}

编辑(编辑此问题后):

如果使用max($array) + 1min($array) - 1