php找空隙建阵
php find gaps and build an array
我有这个
array
(
[0] => 1976,
[1] => 1977,
[2] => 1978,
[3] => 1979,
[4] => 1980,
[5] => 1981,
[6] => 1982,
[7] => 1983,
[8] => 1990,
[9] => 1991,
[10] => 1993,
[11] => 1994,
[12] => 1995
)
我想找到间隙之间的间隔,所以它看起来像这样:
$tmp[1]= [[0] => 1976, [1] => 1983]
$tmp[1]= [[0] => 1990, [1] => 1991]
$tmp[1]= [[0] => 1993, [1] => 1995]
最终我将使用相同的方法和最大的数字列表
安迪的想法?
尽管您没有提供任何代码,但假设我理解正确,这里可以使用一些代码
function getIntervals($array) {
$intervals = [];
$intervalIndex = 0;
for ($i = 0; $i < count($array); $i++) {
//If the beginning is not set, set it.
if (!isset($intervals[$intervalIndex][0])) {
$intervals[$intervalIndex][0] = $array[$i];
}
if ($i != 0) {
if ($array[$i] == ($array[$i - 1] + 1)) {
$intervals[$intervalIndex][1] = $array[$i];
} else {
$intervalIndex++;
$intervals[$intervalIndex][0] = $array[$i];
}
}
}
return $intervals;
}
这是您的列表的用法示例:
getIntervals([
1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983,
1990, 1991,
1993, 1994, 1995,
]);
和预期结果:
array:3 [
0 => array:2 [
0 => 1976
1 => 1983
]
1 => array:2 [
0 => 1990
1 => 1991
]
2 => array:2 [
0 => 1993
1 => 1995
]
]
我有这个
array
(
[0] => 1976,
[1] => 1977,
[2] => 1978,
[3] => 1979,
[4] => 1980,
[5] => 1981,
[6] => 1982,
[7] => 1983,
[8] => 1990,
[9] => 1991,
[10] => 1993,
[11] => 1994,
[12] => 1995
)
我想找到间隙之间的间隔,所以它看起来像这样:
$tmp[1]= [[0] => 1976, [1] => 1983]
$tmp[1]= [[0] => 1990, [1] => 1991]
$tmp[1]= [[0] => 1993, [1] => 1995]
最终我将使用相同的方法和最大的数字列表 安迪的想法?
尽管您没有提供任何代码,但假设我理解正确,这里可以使用一些代码
function getIntervals($array) {
$intervals = [];
$intervalIndex = 0;
for ($i = 0; $i < count($array); $i++) {
//If the beginning is not set, set it.
if (!isset($intervals[$intervalIndex][0])) {
$intervals[$intervalIndex][0] = $array[$i];
}
if ($i != 0) {
if ($array[$i] == ($array[$i - 1] + 1)) {
$intervals[$intervalIndex][1] = $array[$i];
} else {
$intervalIndex++;
$intervals[$intervalIndex][0] = $array[$i];
}
}
}
return $intervals;
}
这是您的列表的用法示例:
getIntervals([
1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983,
1990, 1991,
1993, 1994, 1995,
]);
和预期结果:
array:3 [
0 => array:2 [
0 => 1976
1 => 1983
]
1 => array:2 [
0 => 1990
1 => 1991
]
2 => array:2 [
0 => 1993
1 => 1995
]
]