Array 改變鍵名不改變順序
陣列中若要改變鍵名(key),用簡單的替換方式則會造成陣列順序變動,若不想要順序變動的話,可以參考以下方式:
$array = array( "a" => "1", "b" => "2", "c" => "3" ); function replace_key($array, $old_key, $new_key) { $keys = array_keys($array); if (false === $index = array_search($old_key, $keys)) { throw new Exception(sprintf('Key "%s" does not exit', $old_key)); } $keys[$index] = $new_key; return array_combine($keys, array_values($array)); } //將key name:b 替換為 e $new_array = replace_key($array, "b", "e");
輸出結果為:
old_array : Array ( [a] => 1 [b] => 2 [c] => 3 ) new_array : Array ( [a] => 1 [e] => 2 [c] => 3 )
搞定,如此一來順序也不會改變。
來源 : http://stackoverflow.com/questions/8883974/change-...
文章標籤
全站熱搜