2017-01-08 3 views
0

배열의 특정 변수를 설정 해제하기 위해 for 루프를 생성하려고합니다. 나는 인터넷에서 어떤 대답을 찾을 수 없습니다. 여기 내 코드가있다.php - for 루프를 사용하여 변수 배열에서 변수를 설정 해제합니다.

$randomnumber=242; 
$variables= array('var','var2','randomnumber'); 
for ($i = 0; $i < count($variables); $i++) { 
unset($variables[$i]); 
} 

echo $randomnumber; 

출력은 다음과 같습니다 내가 놓치고 무엇을 잘 모릅니다

242 

. 제발 도와주세요. 나는 "변수"의 배열에서 "var1", "var2"및 "임의 번호"변수의 설정을 해제하려고합니다. 출력은 "undefined variable : $ randomnumber"또는 이와 비슷한 값이어야합니다. 코드

unset($variables[$i]); 

+1

를 왜해야합니까? '$ randomnumber'는 for 루프 코드에서 어디에도 사용되지 않습니다 ... – Rizier123

+0

for 루프를 사용하여 $ randomnumber의 설정을 해제하고 싶습니다. – DoMajor7th

+0

그런 다음'unset ($ randomnumber);'배열과 for 루프는'$ randomnumber' 변수와 아무 관계가 없습니다. – Rizier123

답변

2

배열 $variables

당신이 다음 variable variable을 사용해야 이름 $variables[$i]의 변수를 설정 해제하려면에서 키 $i

설정되지 않은 값을 의미

$randomnumber=242; 
$variables= array('var','var2','randomnumber'); 
for ($i = 0; $i < count($variables); $i++) { 

    // variable variable syntax here 
    unset(${$variables[$i]}); 

} 

echo $randomnumber; 
+0

당신은 믿을 수 없습니다. 고맙습니다. 나는 오랫동안 그것을 찾고 있었다! – DoMajor7th

+0

'count'는 변수에서 값을 가져 오는 것과 같은 O (1)입니까? 그렇습니다. –

+0

@u_mulder 여전히 배열을 세 번 대신 계산하고 배열에 저장합니다. – Rizier123

0

간단하고 빠른 해결책 :

$randomnumber = 242; 
$variables = ['var', 'var2', 'randomnumber']; 

foreach ($variables as $variableName) { 
    unset($$variableName); 
} 
+0

정말 고마워요! – DoMajor7th