2011-11-05 6 views
1

$s_filters PHP 배열 및 가변 변수

Array 
(
    [genders] => m 
    [ages] => 11-12,13-15 
) 
Array 
(
    [genders] => m 
    [ages] => 11-12,13-15 
) 
어떻게하면이 배열을 다음과 같이 변환 할 수 있습니까?

$gender = array('m'); 
$ages = array('11-12','13-15'); 

그래서 기본적으로 $s_filters을 반복하고 새로운 배열을 만듭니다. 이름은 키이고 값은 ","에서 폭발해야합니다.

변수 변수를 사용해 보았습니다 :

foreach($s_filters as $key => $value) 
{ 
    $$key = array(); 
    $$key[] = $value; 
    print_r($$key); 
} 

그러나 이것은 cannot use [] for reading 오류를줍니다. 나는 올바른 길을 가고 있는가?

답변

2

다음 코드는 달성하려는 목표에 대해 다른 접근 방식을 사용합니다. 그것은 먼저, 지역 변수로 배열을 변환 할 extract 함수를 사용하는 새로운 변수 불구하고 루프와 explode 그들을 S :

extract($s_filters); 

foreach(array_keys($s_filters) as $key) 
{ 
    ${$key} = explode(",", ${$key}); 
} 
0
$s_filters = Array 
(
    "genders" => "m", 
    "ages" => "11-12,13-15" 
); 

foreach($s_filters as $key=>$value) 
{ 
    ${$key} = explode(',', $value); 
} 

header("Content-Type: text/plain"); 
print_r($genders); 
print_r($ages); 
0
$gender = $arr['gender']; 

당신이 원하는 것은 어려운 디버깅, 읽을 수 있으며, 전반적으로 나쁜 습관. 그것은 확실히 더 잘 처리 될 수 있습니다.