我有一个数组关联数组最后一个元素移至第一
array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
)
我要像
array(
'key3'=>'value3',
'key1'=>'value1',
'key2'=>'value2'
)
创建它,我只是想和键值对保持所有其他先动的最后一个元素细节照原样。
我有一个数组关联数组最后一个元素移至第一
array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
)
我要像
array(
'key3'=>'value3',
'key1'=>'value1',
'key2'=>'value2'
)
创建它,我只是想和键值对保持所有其他先动的最后一个元素细节照原样。
最简单的方式做下面的代码
$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
)
让我知道如果我能帮助你更
剪接它的仅有的问题,并将其合并到开始
$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"
}
用户功能array_reverse()
扭转阵列, 喜欢:
<?php
$arr=array(
'key1'=>'value1',
'key2'=>'value2',
'key3'=>'value3'
);
$reversed = array_reverse($arr);
echo "<pre>";
print_r($reversed);
?>
我不必扭转整个阵列。 – 2013-05-03 12:15:23
简单的工作太复杂了。 – Notepad 2013-05-03 19:24:39
$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);
第一转到最后一个项目或阵列,使用结束(最快的国家之一)为此目的。现在获取密钥,然后将其删除并添加到顶部。
$last_val = end($original_array);
$last_key = key($original_array);
unset($original_array[$key]);
$new_array = array($last_key => $last_val) + $original_array;
您或您的代码都不应该知道或关心关联数组的密钥的顺序 - 通常它没有指定,反正也没关系。如果您关心订单,请使用数字数组。 – michaelb958 2013-05-03 12:03:48
不是它的数字数组。 – 2013-05-04 15:03:29
它是一个关联数组。 实际上这不是我真正的阵列。 – 2013-05-04 15:04:31