2017-05-17 2 views
0

나는 $ arrActivities라는 다차원 배열을 가지고 있습니다.php array_multisort에서 동적으로 매개 변수 목록 만들기

php의 array_multisort를 사용하기 위해 $ arrFct0, $ arrField1, $ arrField2 및 $ arrField3이라는 4 개의 배열을 만들었습니다.이 배열은 모두 $ arrActivities에있는 특정 필드의 배열입니다. 그 배열을 사용

,이 명령은 완벽하게 작동합니다 : 때로는 데이터 세트에 따라 다섯 개 가지 배열이있을 수 있으므로

array_multisort($arrField0, SORT_STRING, $arrField1, SORT_STRING, $arrField2, SORT_STRING, $arrField3, SORT_STRING, $arrActivities); 

내가하지만, 동적으로 매개 변수 문자열을 작성해야합니다.

동적으로 문자열을 만드는 시도 :이 작동

$strSort = '$arrField0, SORT_STRING, $arrField1, SORT_STRING, $arrField2, SORT_STRING, $arrField3, SORT_STRING, $arrActivities'; 

(즉 그것은 않습니다 올바르게 정렬)하지만 난 경고 얻을 다음에 전달하는 올바른 방법은 무엇

array_multisort($strSort); 

Warning: array_multisort(): Argument #1 is expected to be an array or a sort flag 

을 내가 경고를받지 못하는 문자열이나 배열을 가진 인수?

경고가 표시되지만 올바르게 정렬되는 이유는 무엇입니까?

+0

질문에 대한 문맥을 추가하는 샘플 입력을 제공하면 멋진 해결책을 도울 수 있습니다. 일부 입출력 데이터를 보여주십시오. – mickmackusa

+0

위의 항목에 코드를 추가했습니다. – sws

+0

질문 업데이트를 잘 볼 시간이 없었지만 할 수있을 때 다시 올게되었습니다. 몇 가지 간단한 샘플 배열 데이터를 제공하여 내가 작업 한 내용과 결과로서 기대하는 것을 시각화 할 수 있도록하십시오. – mickmackusa

답변

0

해결책 : 나는 동적으로 $ arrSort 배열을 생성 할 수 있어요

$arrSort = array(&$arrField0, SORT_STRING, &$arrField1, SORT_STRING, &$arrField2, SORT_STRING, &$arrField3, SORT_STRING); 
    $arrParams = array_merge($arrSort, array(&$arrActivities)); 
    call_user_func_array('array_multisort', $arrParams); 

과가없이 올바르게 정렬 : 나는 call_user_func_array를 사용하여는 array_multisort에 대한 매개 변수의 동적 목록을 구축하는 해결책을 발견

오류 또는 경고.