我有一個數組關聯數組最後一個元素移至第一
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