首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从低到高对数组进行排序

从低到高对数组进行排序
EN

Stack Overflow用户
提问于 2013-10-19 00:29:05
回答 1查看 142关注 0票数 0

我有一个数组:

代码语言:javascript
复制
$pics = array("0"=>"pic-1", "1"=>"pic-2", "2"=>"pic-3", "3"=>"pic-4",  "4"=>"pic-5");

我想从低到高进行排序,但从定义的非0的起点开始,然后在最后添加剩余的值,也是从低到高。

举个例子,以key 2为起点,我想以

代码语言:javascript
复制
$pics = array("2"=>"pic-3", "3"=>"pic-4", "4"=>"pic-5", "0"=>"pic-1",  "1"=>"pic-2");

谁能给我解释一下如何做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2013-10-19 01:59:01

我算出来了,请检查一下:

代码语言:javascript
复制
<?php
//
// $start: starting position to sort in [0, count($xarr) - 1].
//
function sortArrayFromPosition($xarr, $start)
{
//
  if($start < 0)
  {
    return $xarr;
  }
  elseif($start >= count($xarr))
  {
    return $xarr;
  }
  //
  // sort the ending elements:
  //
  $ends = array_slice($xarr, $start, null, true);
  asort($ends);
  //
  // append beginning elements:
  //
  $i = 0;
  foreach($xarr as $key => $value)
  {
    if($i > $start)
    {
        $break;
    }
    $ends[$key] = $value;
    $i++;
  }
  return $ends;
}

//
// main tests:
//
//$pics = array("0"=>"pic-1", "1"=>"pic-2", "2"=>"pic-3", "3"=>"pic-4", "4"=>"pic-5");
$pics0 = array("0"=>"pic-1", "1"=>"pic-5", "2"=>"pic-3", "3"=>"pic-2", "4"=>"pic-4");
//
$start = 2;
$pics = sortArrayFromPosition($pics0, $start);
//
echo "<pre>";
print_r($pics);
echo "</pre>";

//
$start = 4;
$pics = sortArrayFromPosition($pics0, $start);
//
echo "<pre>";
print_r($pics);
echo "</pre>";
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19454570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档