怎样交换数组中元素的位置(包括键值一起交换)

解决方案 »

  1.   

    function changeLocation($arr,$key1,$key2){
       if($key1==$key2) return $arr;   if(array_key_exists($key1,$arr)&&array_key_exists($key2,$arr)){
           $tmp = $arr[$key1];
           $arr[$key1] = $arr[$key2];
           $arr[$key2] = $arr[$tmp];
       }
       return $arr;
    }
    $arr = array(1=>"a",2=>"b",3=>"c");
    $arr = changeLocation($arr,1,3);
      

  2.   

    function changeLocation($arr,$key1,$key2){
       if($key1==$key2) return $arr;   if(array_key_exists($key1,$arr)&&array_key_exists($key2,$arr)){
           $tmp = $arr[$key1];
           $arr[$key1] = $arr[$key2];
           $arr[$key2] = $arr[$tmp];
       }
       return $arr;
    }
    $arr = array(1=>"a",2=>"b",3=>"c");
    $newarr = array_flip(changeLocation($arr,1,3));
      

  3.   

    $ar = array(1=>"a",2=>"b",3=>"c");
    $k1 = 1;
    $k2 = 3;
    foreach($ar as $k=>$v) {
    if($k == $k1) {
    $arr[$k2] = $ar[$k2];
    }elseif($k == $k2) {
    $arr[$k1] = $ar[$k1];
    }else {
    $arr[$k] = $v;
    }
    }
    print_r($arr);