2012-03-20 7 views
1

나는 여기서 흥미로운 문제에 직면 해있다. 다른 배열의 데이터를 데이터베이스에 보내고 싶습니다. 문제는 코드 중복이 많아서 함수를 만들려고한다는 것입니다. 예 :변수에 변수가있는 변수를 변수에 저장할 수 있습니까?

$i = "0"; 
$education = $user['education'][$i]['school']['name']; 
while ($education != null){ 
    mysql_query("INSERT INTO educations VALUES(
    {$user['id']}, 
    '{$user['education'][$i]['school']['name']}' 
)"); 
    } 
    $i++; 
    $education = $user['education'][$i]['school']['name']; 
} 

그리고 내가하고 싶은이 같은 작업 :

$i = "0"; 
$item = $user['education'][$i]['school']['name']; 
$table = 'educations' 
$current = $item; 
while ($current != 'EOL'){ 
    if ($current != null){ 
    mysql_query("INSERT INTO {$table} VALUES(
    {$user['id']}, 
    '{$item}' 
)"); 
    } 
    $i++; 
    $current = $item; 
} 

내가 할 노력하고있어 문제는 같은 방식으로 $item에서 변수 변수 $user['education'][$i]['school']['name']을 저장하는 것입니다 , 다른 변수에 $item을 저장할 때마다 $i 값을 다시 삽입합니다. 이것이 가능할 지 모르겠지만, 생각해 보면 재미있는 것입니다.

답변

0

변수 이름의 경우 $ myvariable_0, _1, ...을 출력 할 $ { 'myvariable _'. $ i}와 같은 것을 사용할 수 있습니다. 배열의 경우 작동하지 않을 수도 있습니다 (시도해 볼 수 있습니까? 제발요?) 그렇지 않으면 다음과 같은 함수를 사용해야합니다 :

function getNthSchoolName($n) { 
    global $user; 
    return $user[''][$n]['schoool']['name']; 
} 
+0

배열 변수의 인용 부호는 오류를 생성하고 따옴표를 이스케이프 처리하면 (분명히) 올바른 객체를 반환하지 않습니다. . 그래도 고맙습니다. – hannesbelen

관련 문제