$arr = array(
  "r"=>"red",
  "b"=>"blue",
  "l"=>"lime"
);交换第一个和第二个的顺序b"=>"blue",
r"=>"red",
"l"=>"lime"

解决方案 »

  1.   

    $arr = array(
       "r"=>"red",
       "b"=>"blue",
       "l"=>"lime"
    );
    $temp =end($arr);
    $temp_k =key($arr);
    array_pop($arr);
    krsort($arr);
    $arr[$temp_k]=$temp;
    var_dump($arr);
      

  2.   

    给你一个链接
    从源码解释 这个顺序
    自己看
    http://www.laruence.com/2009/08/23/1065.html
      

  3.   

    $arr = array(
       "r"=>"red",
       "b"=>"blue",
       "l"=>"lime"
    );
    $temp =end($arr);
    $temp_k =key($arr);
    array_pop($arr);
    $arr=array_reverse($arr);
    $arr[$temp_k]=$temp;
    var_dump($arr);
      

  4.   

    kxn308你那个文章有点深奥。一时半会看不懂
      

  5.   

    $arr = array(
      "r"=>"red",
      "b"=>"blue",
      "l"=>"lime"
    );foreach(array('b', 'r', 'l') as $k)
      $r[$k] = $arr[$k];print_r($r);
    Array
    (
        [b] => blue
        [r] => red
        [l] => lime
    )
      

  6.   

    重新定义一个数组,以你要的顺序把每个元素array_push()进去应该可以吧?虽然效率有点低..