让我们说我在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分钟和最大?我希望看到实现这一目标的最佳方法。
答案 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) + 1
和min($array) - 1
。