关联数组将最后一个元素移动到第一个

时间:2013-05-03 11:56:45

标签: php

我有一个数组

array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
)

我想创建它像

array(
'key3'=>'value3',
'key1'=>'value1',
'key2'=>'value2'
)

我只想将最后一个元素移动到第一个元素,键值对保留所有其他细节。

5 个答案:

答案 0 :(得分:9)

使用以下代码的最简单方法

$arr = array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
);

$lastvalue = end($arr);
$lastkey = key($arr);

$arr1 = array($lastkey=>$lastvalue);

array_pop($arr);

$arr1 = array_merge($arr1,$arr);

<强>输出

Array
(
    [key3] => value3
    [key1] => value1
    [key2] => value2
)

让我知道我是否可以帮助你更多

答案 1 :(得分:6)

只需拼接它并将其合并到开头

$array = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);

$newArray = array_merge(array_splice($array, -1), $array);

var_dump($newArray);

输出:

array(3) {
  ["key3"]=>
  string(6) "value3"
  ["key1"]=>
  string(6) "value1"
  ["key2"]=>
  string(6) "value2"
}

答案 2 :(得分:0)

使用函数array_reverse()来反转数组, 喜欢:

<?php
$arr=array(
   'key1'=>'value1',
   'key2'=>'value2',
   'key3'=>'value3'
);
$reversed = array_reverse($arr);
echo "<pre>";
print_r($reversed);
?>

答案 3 :(得分:0)

$array = array(
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
);

$count = 1;
foreach ($array as $k => $v) {
    if ($count == 1)
        $first[$k] = $v;
    if ($count == count($array))
        $last[$k] = $v;

    $count++;
}

array_shift($array);
array_pop($array);
$final = array_merge($last, $array, $first);
print_r($final);

答案 4 :(得分:0)

首先转到最后一个项目或数组,为此目的使用结束(最快的一个)。现在获取键,值然后删除它并添加到顶部。

$last_val = end($original_array);
$last_key = key($original_array);
unset($original_array[$key]);
$new_array = array($last_key => $last_val) + $original_array;