基于值升序或降序php对数组进行排序

时间:2014-05-22 05:05:19

标签: php arrays

我的数组是

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
)

起始值= 3

 Array
    (
        [0] => 3
        [1] => 4
        [2] => 5
        [3] => 6
        [4] => 0
        [5] => 1
        [6] => 2
    )

任何想法的朋友..

4 个答案:

答案 0 :(得分:1)

第0步(如果需要,可选): 命令数组(heap或其他一些排序算法)

第1步: 创建一个输出数组

第2步: 循环通过数组并找到你的起点将值和后面的值移动到新数组并将原始数组中的值设置为null

第3步: 循环通过数组并移动剩余的值

DONE

答案 1 :(得分:1)

这样做: 在阵列上调用asort。 调用array_search以查找要切片的索引。 致电array_slice以切断您想要的部分。 致电array_merge以正确的顺序合并它们。

我不太了解PHP,但快速浏览一下php.net,我怀疑这会有用。

答案 2 :(得分:1)

$arr = array(0,1,2,3,4,5,6);
foreach($arr as $k=>$v) {
  if($v >= 3) 
   $a[] = $v;
  else
   $b[] = $v;
}
$c = array_merge($a, $b);
print_r($c);  //Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 0 [5] => 1 [6] => 2 ) 

答案 3 :(得分:1)

看看你的数组是如何排序和0索引的,你可以切片并重新组织它:

array_values(array_slice($arr, 3, null, true) + array_slice($arr, 0, 3, true));