2012-09-23 4 views
0

내가 뭘하는지 배열에 포함 된 항목 수를 기준으로 목록을 생성하므로 항목을 세고 반복하여 숫자 기반 var 및 $ a1, $ a2 ....을 포함하는 $ var 문자열을 생성하고 $ var를 목록 목록 ($ var)에 할당합니다.변수를 동적으로 PHP 목록 함수에 할당하는 방법

$ a1에 액세스하려고 시도했지만 "Undefined variable : a1"오류가 발생합니다.

다른 방법이 있습니까? 당신이 찾고있는 무엇

$arr = array('1','2','3'); 
$listsize = count($arr); 
$var=''; 
for($i=1;$i<=$listsize;$i++){ 
     $var.='$a'.$i; 
     if($i!=$listsize){ 
      $var.=','; 
     } 
} 

list($var) = $arr; 
echo $a1; 
+2

정확한 중복 (HTTP : /을 /stackoverflow.com/questions/12550154/php-how-to-generate-dynamic-list) – vstm

+0

$ a는 어디에 정의되어 있습니까? $'; = '$ a'와 같이 $ var에 값을 할당했습니다. $ i;' – WatsMyName

+0

$ a가 새로 생성되었습니다. var을 문자열로 사용하고 위의 목록에서 사용할 $ a1을 만듭니다. 코드 에코 $ var는 $ a1, $ a2, $ a3으로 출력되며 목록 ($ var)을 사용하는 것은 내 ($ a1, $ a2, $ a3) = $ arr 이고 echo $ a1은 1이어야합니다 clear – ravisoni

답변

1

variable variables입니다 :

여기 내 코드입니다.

PHP에서 동적으로 변수 의 이름을 (값이 아님)로 지정할 수 있습니다.

$foo = "Hello" . 1; 

# In this line, I am taking the value of the variable $foo (Hello1) and 
# using that as as a variable name. This is equivalent to 
# $Hello1 = "World", except the variable is dynamic (hence variable variables). 

$$foo = "World"; 

print $Hello1; # This will print World 
+1

안녕 Burhan 이것은 상당한 대답을 할 수 있습니다이 경우 변수 변수를 사용하여 예제를 포함하시기 바랍니다. – ravisoni

+0

Burhan - @ ravisoni의 의견에 따르면 조금 더 많은 정보를 제공하기 위해 답을 넓힐 수 있다면 좋을 것입니다. – Kev

+0

실제로 질문은 정확한 복제본입니다. 그래서 나는 내 대답을 확장하지 않았다. 나는 지금 그렇게 할 것이다. –

1

extract()를 사용 : 여기

은 예입니다?

이 시도 :

$values = array('1','2','3'); 
$variables = array(); 
$length = count($values); 
$key = 'a1'; 

for ($i = 0; $i < $length; $i++){ 
    $variables[$key] = $values[$i]; 
    $key++; 
} 

extract($variables); 
echo $a1, $a2, $a3; 
+0

위대한 :) thx egis – ravisoni

+0

당신은 환영합니다 :) 귀하의 문제를 해결하는 대답을 받아 들일 것을 잊지 마십시오;) – egis

0

당신은 루프없이 문제를 해결할 수 있습니다. 당신이 변수에 대한 액세스를 사용하는

Array 
(
    [a1] => 1 
    [a2] => 2 
    [a3] => 3 
    [a4] => test 
    [a5] => 1 
    [a6] => 4.56 
) 

I 조언 : 울부 짖는 소리 출력과 같은 키와 값이 같은

$arr = array('1', '2', '3', 'test', true, 4.56); 
$keys = array_map(function($n) { return "a$n"; }, range(1, count($arr))); 
$a = array_combine($keys, $arr); 

배열 $ : 도끼에 키 A1을 가지고 데이터로 가득로 배열 $, $ a [ 'a3']와 같은 배열을 사용하고 $ a3과 같은 변수는 사용하지 않습니다.

당신은 추출물 배열과 같은 $ A1 ... $ 도끼 변수,하고 싶은 경우

extract($a); 
[동적 목록()를 생성하는 방법에 PHP는?]의
관련 문제