当前位置: 首页 > 面试题库 >

PHP:“旋转”数组?

荣俊
2023-03-14
问题内容

是否可以轻松地“旋转” PHP中的数组?

像这样:1,2,3,4-> 2,3,4,1

为此有某种内置的PHP函数吗?


问题答案:

当前大多数答案都是正确的,但前提是您不关心索引

$arr = array('foo' => 'bar', 'baz' => 'qux', 'wibble' => 'wobble');
array_push($arr, array_shift($arr));
print_r($arr);

输出:

Array
(
    [baz] => qux
    [wibble] => wobble
    [0] => bar
)

要保留索引,您可以执行以下操作:

$arr = array('foo' => 'bar', 'baz' => 'qux', 'wibble' => 'wobble');

$keys = array_keys($arr);
$val = $arr[$keys[0]];
unset($arr[$keys[0]]);
$arr[$keys[0]] = $val;

print_r($arr);

输出:

Array
(
    [baz] => qux
    [wibble] => wobble
    [foo] => bar
)

也许有人可以比我的四行方法更简洁地进行轮换,但这还是行得通的。



 类似资料:
  • 问题内容: 因此,目标是将阵列中的元素正确旋转一次。举个例子; 如果, 则将成为 这是我所拥有的: 但是,这无法说明何时大于数组的长度。我读到我应该将更大的存储在另一个Array中,但是看到变量是不确定的,因此我不确定这是最好的解决方案。提前致谢。 问题答案: 在代码中添加一个模数组长度: 您还应该创建一个要复制到的新值,以免覆盖以后需要的值。

  • 我有一个一维数组,它代表一个二维网格。行和列的数量是已知的。从“左上角”到“右下角”读取,因此第一项为R1C1,最后一项为RXCY(其中X=行编号,Y=列编号; 我的目标是翻转或旋转二维数组,并返回一个新的一维数组表示转换。 我尝试了按位操作,但无法让它与行/行计数可能是奇数或偶数的事实一起工作。我也尝试了迭代方法,但在逻辑杂草中迷失了方向。 一个最简单的javascript示例:9项数组中的3^

  • 假设我有这样的多维数组:

  • 我有一个int < code > 000000000000000000000000001101 ,它代表十进制的13。我试图通过将32位整数视为4位整数来循环旋转这些位,因为如果旋转整数,值会变得非常大。在上面的例子中,右旋转2后,我想要的答案是< code > 00000000000000000000000000111 ,它是以10为基数的7。 非常感谢对此的任何帮助。

  • 我写了一个函数,它接受两个参数: > JPG图像作为3D数组 α给出的旋转度我的方法是: 公共静态整数[][]旋转(整数[][]img,双alpha){双rad=Math.toRadians(alpha);双sin=Math.sin(rad);双cos=Math.cos(rad); } 在固定索引范围的同时,输出是一个黑色的图像。我错过了什么?

  • NowCoder 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 解题思路 将旋转数组对半分可以得到一个包含最小元素的新旋转数组,以及一个非递减排序的数组。新的旋转数组的数组元素是原数组的一半,从而将问题规模减少了一半,这种折半性质的算法的时间复杂度为 O(logN)(为了方便,这里将 log2N 写为 lo