$array = array(
   'ab'=>123,
   'ef'=>234,
   'hc'=>654
)我现在想让hc和ab换个位置,其中包括(key和value)
换位后的结果
 
$array = array(
   'hc'=>654,
   'ef'=>234,
   'ab'=>123,
)有哪些方法能办到?
方法之一:声明一个新数组,循环$array数组,做判断来换位!本人喜欢找更高效的方法,特来发帖求教

解决方案 »

  1.   

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

  2.   

    <?php
    $array = array(
       'ab'=>123,
       'ef'=>234,
       'hc'=>654
    );echo "<pre>";
    print_r($array);ksort($array,1);
    print_r($array);
      

  3.   

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

  4.   

    试试~
    $array = array(
      'ab'=>123,
      'ef'=>234,
      'hc'=>654
    );
    krsort($array);
    print_r($array);
      

  5.   


    如果是这样一个数组,你该怎么办$array = array(
      'ab'=>123,
      'ef'=>234,
      'hc'=>654,
      'ht'=>456,
      'ty'=>421,
    );
    其中ht和ef换位,换后的结果是
    $array = array(
      'ab'=>123,
      'ht'=>456,
      'hc'=>654,
      'ef'=>234,
      'ty'=>421,
    );你这种方法就没法办到了
      

  6.   

    关键是LZ你要根据什么规则来换位啊??$array = array(
      'ab'=>123,
      'ef'=>234,
      'hc'=>654,
      'ht'=>456,
      'ty'=>421,
    );
    那我是不是要ab hc 换位 // ef ht换位// hc ht 换位 ??? 
    你总的有个参考吧
      

  7.   

    我感觉foreach 就ok了 一个数组不存在什么效率问题吧