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花了我很多时间帮助你,然后你忘恩负义,没有意识到你的问题中没有包括这些奇怪的额外要求,你已经失败了。你为什么对他受伤感到惊讶。他完全有权这样做。你应该倾听批评并从中吸取教训。你缺少的是礼貌。