Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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 轮换名单_Php_Algorithm - Fatal编程技术网

Php 轮换名单

Php 轮换名单,php,algorithm,Php,Algorithm,如何轮换列表 例如 $arr = array(a,b,c,d,e,f,g); 现在旋转指数是3。列表应从d开始旋转。 最后的名单应该是 d e f g a b c 有人能提出解决办法吗?我不想使用内置函数,这应该在原地完成 $arr = array('a','b','c','d','e','f','g'); $i = 3; $arr2 = array_merge(array_slice($arr, $i), array_slice($arr, 0, $i)); var_dump($arr

如何轮换列表

例如

$arr = array(a,b,c,d,e,f,g);
现在旋转指数是3。列表应从d开始旋转。 最后的名单应该是

d e f g a b c
有人能提出解决办法吗?我不想使用内置函数,这应该在原地完成

$arr = array('a','b','c','d','e','f','g'); 
$i = 3;
$arr2 = array_merge(array_slice($arr, $i), array_slice($arr, 0, $i));

var_dump($arr2);
另一个解决方案:

$arr = array('a','b','c','d','e','f','g'); 

$arr2 = array();

$shift = 3;

for ($i = $shift; $i < count($arr); $i++) {
    $arr2[] = $arr[$i];
}

for ($i = 0; $i < $shift; $i++) {
    $arr2[] = $arr[$i];
}

var_dump($arr2);
不带临时阵列的解决方案:

$arr = array('a','b','c','d','e','f','g'); 

for ($j = 0; $j < 3; $j++) {
    $first_letter = $arr[0];
    for ($i = 1; $i < count($arr); $i++) {
        $arr[$i - 1] = $arr[$i];
    }
    $arr[count($arr) - 1] = $first_letter;
}

var_dump($arr);

@布尔古伊:1为什么?我做完工作后你为什么这么说@blrguy:这是一个愚蠢的面试问题,不要接受他们的提议。@blrguy:添加了另一个解决方案,但面试中如此愚蠢的问题是一个迹象,他们的开发人员是新手或白痴。@blrguy:不要浪费时间教我如何与人交谈,最好学习一些琐碎的算法,或者,即使在一家糟糕的公司里,你也永远得不到一份好工作@blrguy zerkms花了我很多时间帮助你,然后你忘恩负义,没有意识到你的问题中没有包括这些奇怪的额外要求,你已经失败了。你为什么对他受伤感到惊讶。他完全有权这样做。你应该倾听批评并从中吸取教训。你缺少的是礼貌。