繁体   English   中英

将每个值的 position 移动到关联数组中的下一个索引

[英]Shift the position of each value to the next index In an associative array

我在 PHP 中有一个数组。 例如:

Array
(
    [3] => 6
    [2] => 4
    [1] => 2
    [4] => 8
    [6] => 12
)

我需要将每个值的 position 转移到下一个索引。 即,所需的 output 是

Array
(
    [3] => 12
    [2] => 6
    [1] => 4
    [4] => 2
    [6] => 8
)

我需要保持键不变并对值进行四舍五入。

实现它的最简单方法是什么?

我已经尝试过的是

$lastValue = $array[array_keys($array)[4]];
$firstKey  = array_keys($array)[0];

for ($i=4; $i>0; $i--) {
$array[array_keys($array)[$i]] = $array[array_keys($array)[$i-1]];
   }

$array[$firstKey] = $lastValue;
print_r($array);

php 太酷了 ^_^ 部分想法~被盗~取自@Peters 解决方案,对不起,伙计:)

<?php

$array = 
[
    3 => 6,
    2 => 4,
    1 => 2,
    4 => 8,
    6 => 12,
];

$newArray = array_combine(array_keys($array), array_merge([array_pop($array)], $array));
var_dump($newArray);

演示

您可以对值进行轮换。 演示

$array =
    [
        3 => 6,
        2 => 4,
        1 => 2,
        4 => 8,
        6 => 12,
    ];
$values = [null];
$keys = [];
foreach($array as $k => $v){
    $keys[] = $k;
    $values[] = $v;            
}
$values[0] = $v;
array_pop($values);
$result = array_combine($keys,$values);

print_r($result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM