$arr = [
['num' => -1],
['num' => 1],
['num' => 2],
['num' => 3],
['num' => 8],
['num' => 9],
['num' => 10],
['num' => 11],
['num' => 20],
['num' => 21],
['num' => 22],
['num' => 25],
['num' => 30],
['num' => 31],
['num' => 32],
['num' => 100],
];
現(xiàn)在的要求是,如果數(shù)組中num值相減大于1的話,就給它分割成一個新的數(shù)組,處理成這樣:
$arr = [
[
['num' => -1],
],
[
['num' => 1],
['num' => 2],
['num' => 3],
],
[
['num' => 8],
['num' => 9],
['num' => 10],
['num' => 11],
],
[
['num' => 20],
['num' => 21],
['num' => 22],
],
[
['num' => 25]
],
[
['num' => 30],
['num' => 31],
['num' => 32],
],
[
['num' => 100],
]
];
想請教下,用PHP該怎么處理?
1 回答

慕桂英3389331
TA貢獻2036條經(jīng)驗 獲得超8個贊
至少for循環(huán)還是能想到..
function continuous($arr, $field = "num")
{
$result = [];
$temp = [
$arr[0],
];
for ($i = 1; $i < count($arr); $i++) {
$prev = $arr[$i - 1][$field];
$now = $arr[$i][$field];
if ($now - $prev == 1) {
$temp[] = $arr[$i];
} else {
if ($temp) {
$result[] = $temp;
}
$temp = [$arr[$i]];
}
}
if(!empty($temp)) {
$result[] = $temp;
}
return $result;
}
- 1 回答
- 0 關(guān)注
- 426 瀏覽
添加回答
舉報
0/150
提交
取消