[英]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.