2012-09-20 3 views
0

배열을 생성하고 싶은 함수가 있습니다. 배열의 형식은 구체적이며 my 함수의 인수에 따라 값만 변경하면됩니다. 함수는 다음과 같습니다.PHP 함수 인수로 배열 생성

function generatearray($name1, $field1, $name2, $field2) { 
    $language = ($user->language) ? $user->language : 'und'; 
    $edit = array(
    $name1 => array(
    $language => array(
     0 => array(
     'value' => $field1, 
    ), 
    ), 
    ), // ..... other elements $name2 
); 
    return $edit; 
} 

$ name2 및 $ field2는 선택적 인수입니다.

+2

무엇이 문제입니까? –

+0

그것은 당신의 질문에 대답하지 않을지도 모르지만, 당신은 어디에서나'$ user'를 정의하지 않고 있습니다 - 당신은 그것을 매개 변수로 전달하거나 그것을 전역으로 선언 할 필요가 있습니다. – andrewsi

+0

도움을 주셔서 감사합니다! 나는 $ user를 다섯 번째 인자로 정의했다. –

답변

1

질문이 무엇인지 확실하지 않지만이 코드는 정확히 알고 자하는 것을 수행합니다 ... 함수에 제공된 이름/값 쌍을 최대 두 개까지 기반으로 배열을 작성하는 방법.

printarray(generatearray('name_one','field_one','name_two','field_two')); 

function generatearray($name1, $field1, $name2 = null, $field2 = null) { 
$new_array = array(); 
$language = isset($user->language) ? $user->language : 'und'; 
$new_array[$name1][$language] = $field1; 
if (!is_null($name2) && !is_null($field2)) { 
    $new_array[$name2][$language] = $field2; 
} 
return $new_array; 
} 

function printarray($arr) { 
foreach ($arr as $user_key => $user_value) { 
    echo "User: ".$user_key."<br />"; 
    foreach ($user_value as $language_key=>$language_value) { 
     echo "Language: ".$language_value."<br />"; 
    } 
} 
}