Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组排序设置数字,然后从1开始_Php_Arrays_Sorting - Fatal编程技术网

PHP数组排序设置数字,然后从1开始

PHP数组排序设置数字,然后从1开始,php,arrays,sorting,Php,Arrays,Sorting,我有一个结构如下的数组,我想用一种奇怪的方式对它进行排序 Array(10,9,8,7,6,5,4,3,2,1) 我想根据当前值对其进行排序。如果当前值是7,我想从7到最大值排序,然后从1回到当前值。因此,数组如下所示: Array(7,8,9,10,1,2,3,4,5,6) 谢谢 安德鲁(Andrew)这个问题本身似乎很幼稚(在技术意义上),这意味着我感觉有些细节被省略了。但根据您提供的简单说明/示例,这里有一种方法: $arr = array(10,9,8,7,6,5,4,3,2,1);

我有一个结构如下的数组,我想用一种奇怪的方式对它进行排序

Array(10,9,8,7,6,5,4,3,2,1)
我想根据当前值对其进行排序。如果当前值是7,我想从7到最大值排序,然后从1回到当前值。因此,数组如下所示:

Array(7,8,9,10,1,2,3,4,5,6)
谢谢


安德鲁(Andrew)

这个问题本身似乎很幼稚(在技术意义上),这意味着我感觉有些细节被省略了。但根据您提供的简单说明/示例,这里有一种方法:

$arr = array(10,9,8,7,6,5,4,3,2,1);

sort($arr);

print_r(
    array_merge(
        array_slice($arr, array_search(7, $arr)),
        array_slice($arr, 0, array_search(7, $arr))
    )
);

给出:

Array
(
    [0] => 7
    [1] => 8
    [2] => 9
    [3] => 10
    [4] => 1
    [5] => 2
    [6] => 3
    [7] => 4
    [8] => 5
    [9] => 6
)

我想我要做的是排序并剪切数组,然后合并其余的数组。像这样:

function reorder($needle, $haystack) {
    sort($haystack);
    $final = array_merge(array_splice($haystack, array_search($needle, $haystack), (sizeof($haystack)-1)), $haystack);
    return $final;
}

echo '<pre>';
print_r(reorder(7, array(10,9,8,7,6,5,4,3,2,1)));

你试过什么吗?你能把它贴在你的问题上吗?我已经试着和乌索特玩了,但到目前为止运气都不好。先安排一下。然后在排序的数组中查找值。从这个好问题开始,我在自定义排序函数中使用过它,但似乎无法找到解决方案。
Array
(
    [0] => 7
    [1] => 8
    [2] => 9
    [3] => 10
    [4] => 1
    [5] => 2
    [6] => 3
    [7] => 4
    [8] => 5
    [9] => 6
)