将数组元素移动到数组的开头?

时间:2019-01-11 16:02:58

标签: php html arrays

如果我有一个像下面这样的数组,我将如何将键[2]及其相关值移动到数组的开头? (将其设置为[0]键,并将其他键增加1)

当前:

[0] => Array
    (
        [name] => Vanilla Coke cans 355ml x 24
    )

[1] => Array
    (
        [name] => Big Red Soda x 24
    )

[2] => Array
    (
        [name] => Reeses White PB Cups - 24 CT
    )

所需结果:

[0] => Array
    (
        [name] => Reeses White PB Cups - 24 CT
    )

[1] => Array
    (
        [name] => Vanilla Coke cans 355ml x 24
    )

[2] => Array
    (
        [name] => Big Red Soda x 24
    )

编辑

为澄清起见,我一直想将元素移到数组的开头,但不一定是最后一个元素,有时可以是第3个4th e.c.t.每次都不同。

2 个答案:

答案 0 :(得分:2)

为什么不同时使用array_unshiftarray_pop

array_unshift($someArray, array_pop($someArray));

array_pop删除最后一个元素,并且array_shift将条目添加到数组中。

答案 1 :(得分:2)

array_splice从数组中删除(并有选择地替换/插入)值,并返回带有删除项的数组。结合简单的array_unshift函数,就可以完成这项工作。

$arr = [1,2,3,4,5];

function array_move_item_as_first(array $array, int $idx) : array
{
  array_unshift( $array, array_splice($array, $idx, 1)[0] );
  return $array;
}

print_r(array_move_item_as_first($arr, 2));

输出:

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