묻고답하기

swap..

2002.09.12 18:21

슈퍼왕뚜껑

class NameList {
var $no;
var $rv;
var $name;
}

이런 클래스가 있는데요..

$nameListT = new NameList;

$nameListT는 원소가 2개 이상인 배열입니다..

$nameListT[0] 과 $nameListT[1]의 값을 바꾸려면 어떻게 해야 하는지 막막하네요..

그러니까

$nameListT->no[0] 과 $nameListT->no[1] 를 서로 맞바꾸고
$nameListT->rv[0] 과 $nameListT->rv[1] 를 바꾸고
$nameListT->name[0] 과 $nameListT->name[1] 를 바꾸는거죠..

어떻게 하면 될까요...



노가다로 하면
$addrX=0;
$addrY=1;
$tmpNo = $nameListM->no[$addrX];
$tmpRV = $nameListM->rv[$addrX];
$tmpName = $nameListM->name[$addrX];

$nameListM->no[$addrX] = $nameListM->no[$addrY];
$nameListM->rv[$addrX] = $nameListM->rv[$addrY];
$nameListM->name[$addrX] = $nameListM->name[$addrY];

$nameListM->no[$addrY] = $tmpNo;
$nameListM->rv[$addrY] = $tmpRV;
$nameListM->name[$addrY] = $tmpName;

이렇게 되는데요...

이렇게밖에 못하는건가요?

더 간단한 방법을 알려주시면 대단히 감사하겠습니다;



아.. 그리구

클래스 내에 이런 함수를 추가했는데

function SwapNameList($addrX, $addrY)
{
$tmpNo = $this->no[$addrX];
$tmpRV = $this->rv[$addrX];
$tmpName = $this->name[$addrX];

$this->no[$addrX] = $this->no[$addrY];
$this->rv[$addrX] = $this->rv[$addrY];
$this->name[$addrX] = $this->name[$addrY];

$this->no[$addrY] = $tmpNo;
$this->rv[$addrY] = $tmpRV;
$this->name[$addrY] = $tmpName;
}

안되네요-_-