任何人都可以帮助我进行以下数组排序
输入
$array=array(1,2,3,6,7,8,100,101,200);
输出:
$new_array=array(
0=>array(1,2,3),
1=>array(6,7,8),
2=>array(100,101),
3=>array(200)
);
提前致谢!
答案 0 :(得分:0)
err = datastore.RunInTransaction(c, func(c appengine.Context) error {
incompleteKey := datastore.NewIncompleteKey(c, ENTITY_TYPE, nil)
entityKey, err := datastore.Put(c, incompleteKey, &MyStruct)
if(err != nil) {
return err
}
MyStruct.SelfID = entityKey.IntID()
_, err = datastore.Put(c, entityKey, &MyStruct)
return err
}, nil)
答案 1 :(得分:0)
您可以遍历数组并检查到数组中下一个元素的距离。如果此距离较大,则添加一个新的子数组:
SurfaceTexture surfaceTexture = new SurfaceTexture(10);
Camera camera = Camera.open();
camera.getParameters().setPreviewSize(1, 1);
camera.setPreviewTexture(surfaceTexture);
使用$array=array(1,2,3,6,7,8,100,101,200);
$result=array(array());
for($i=0; $i<count($array)-1; $i++)
{
if($array[$i+1]-$array[$i]==1)
{
// If difference to next number is one -> push
array_push($result[count($result)-1], $array[$i]);
}
else
{
// ... else: Push and create new array for the next element
array_push($result[count($result)-1], $array[$i]);
array_push($result, array());
}
}
// Push the last number
array_push($result[count($result)-1], $array[$i]);
print_r($result);
...
答案 2 :(得分:0)
非常简单:循环显示数字,记住最后一个数字,如果当前数字不是最后一个数字的后继者,则在结果中添加一个新数组,然后推入结果中的最后一个数组。
$result = [];
$last = null;
foreach ($array as $number) {
if ($last !== $number - 1) {
$result[] = [];
}
$result[count($result) - 1][] = $number;
$last = $number;
}
您甚至可以删除$last
并直接读取$result
的最后一个数组元素的最后一个数组元素,但这会使代码实际上更复杂。