2017-05-17 24 views
0

私は$ arrActivitiesという多次元配列を持っています。php array_multisortで動的にパラメータリストを作成する

phpのarray_multisortを使うために、$ arrField0、$ arrField1、$ arrField2、$ arrField3の4つの配列を作成しました。これらは$ arrActivitiesにある特定のフィールドの配列です。これらの配列を使用

、このコマンドは完璧に動作します:

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

私は、動的に、しかし、時々データセットに応じて、5つの配列があるかもしれない、そのパラメータの文字列を作成する必要があります。

私は動的に文字列を作成してみました:(すなわち、それは正しく並べ替えない)この作品

$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

SOLUTION:私は動的に$ 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のパラメータの動的なリストを構築するの解決策を見つけた

エラーまたは警告です。

関連する問題