日期:2014-05-17  浏览次数:20432 次

数组换位问题
PHP code

$array = array(
   'ab'=>123,
   'ef'=>234,
   'hc'=>654
)


我现在想让hc和ab换个位置,其中包括(key和value)
换位后的结果
 
PHP code

$array = array(
   'hc'=>654,
   'ef'=>234,
   'ab'=>123,
)


有哪些方法能办到?
方法之一:声明一个新数组,循环$array数组,做判断来换位!

本人喜欢找更高效的方法,特来发帖求教

------解决方案--------------------
php数组排序..................
你这个例子的可以使用"krsort()".
其余的情况就不一定了.
------解决方案--------------------
<?php
$array = array(
'ab'=>123,
'ef'=>234,
'hc'=>654
);

echo "<pre>";
print_r($array);

ksort($array,1);
print_r($array);
------解决方案--------------------
探讨

引用:

php数组排序..................
你这个例子的可以使用"krsort()".
其余的情况就不一定了.

貌似krsort不行吧,这个不是单纯的排序,而是换位

------解决方案--------------------
uksort()
自己订好规则.
------解决方案--------------------
关键是LZ你要根据什么规则来换位啊??

$array = array(
'ab'=>123,
'ef'=>234,
'hc'=>654,
'ht'=>456,
'ty'=>421,
);
那我是不是要ab hc 换位 // ef ht换位// hc ht 换位 ??? 
你总的有个参考吧
------解决方案--------------------
数组循环一次,O(n)复杂度,效率有什么问题?
------解决方案--------------------
我感觉foreach 就ok了 一个数组不存在什么效率问题吧