2011-07-27 6 views
1

양식 제출을 통해 값 배열을 전달하려고합니다. 날이 새 페이지에 값을 얻기 위해 다음을 수행하기위한 쉬운 해결책이 될 것양식 제출을 통해 배열 값을 전달할 수 있습니까?

example.com?value1=178&value2=345&value3=2356 

: 예를 들어

$value1=$_GET['value1']; 
$value2=$_GET['value2']; 
$value3=$_GET['value3']; 
나는 데

어려움은 그 후 변수 양식을 통해 전달 된 '가치'라는 단어가 각 제출과 함께 변경됩니다. 그래서 코드로 전달할 개정 한 : 당신이 여기에서 볼 수 있듯이

example.com?value14=178&variable=14&value23=345&variable=23&value63=2356&variable=63 

, 나는 지금 GET 매개 변수로 값에서 오는 변수를 전달했습니다.

$variable=$_GET['variable'];  
$value=$_GET['value'.$variable]; 

echo $value . '<br>'; 

이 코드는 거의 작동 다음과 같이이 값이 제출 한 페이지에 개별적으로 표시 GET 다음 내 시도이다. 표시 할 수있는 마지막 배열을 가져올 수 있습니다. 이 코드를 수정하여 전달 된 값을 모두 제출 된 페이지에 표시되게하려면 어떻게해야합니까?

답변

2

양식 필드를 사용하여 PHP의 배열 표기법 :

$_GET = array(
    'val' => array(178, 14, 345, etc...) 
) 

당신이 할 수있는 경우 :이 배열로 $ _GET [ '발'을]의 원인이됩니다

val[]=178&val[]=14&val[]=345&etc... 

그런 URL을 재정렬하면 preg_grep을 사용해 볼 수 있습니다.

$matches = preg_grep('/^variable\d+$/', array_keys($_GET)); 

반환 which'll :

$matches= array('variable1', 'variable2', 'variable3', etc...); 
1

는 변수 $ 변수에 대한 필요없이이 같은 예를 들어, 배열을 사용합니다.

example.com?value[14]=178&value[23]=345&value[63]=2356 

foreach ($_GET['value'] as $key => value) { 
    echo $key . " => " . $value . "<br/>"; 
} 

편집 : (변수 X 번호 뒤에 "값"의 형태로 항상)과 같이 거기에서 전체 $ _GET -array 및 분석 값을 반복 할 것이다 값을 얻기위한 또 다른 방법 :

example.com?value14=178&value23=345&value63=2356 

$values = array(); 
foreach ($_GET as $key => $value) { 
    if (preg_match('/^value[\d]+$/', $key)) { 
     // remove "value" from the beginning of the key 
     $key = str_replace('value', '', $key); 
     // save result to array 
     $values[$key] = $value; 
    } 
} 
관련 문제