2011-12-08 9 views
0

多次元配列をソートするためにPHPで正しい関数を見つけようとしています。私はforeachをやってksortを使うことを考えました(これはうまくいきませんでした)。 2番目のキー(数字のもの)は、そのシナリオの最初のキーが1ではなく0になるので、array_pushを使用する代わりに、 "手動で"設定されていることに注意してください。多次元配列の二次キーの並べ替え

これは単一のインスタンスのため、私はこれや何か特別なもののためのクラスは必要ありません、私はPHPの正しいコンテキスト関数にこのコードのビットをよりパフォーマンス指向にすることに興味がある私が間違っていることを理解するために)。

注意PRIMARYキー(e、g、Main、Promotional)を現在の順序に保ちたいと思います。あなたが試すこと

未ソート配列...

Array 
(
    [Main] => Array 
     (
      [3] => Main2 
      [2] => Content 
      [1] => Main1 
     ) 

    [Promotional] => Array 
     (
      [3] => Promotional1 
      [2] => Content 
      [1] => Promotional2 
     ) 

) 

(第2レベルのキーでソート)望ましい結果...

Array 
(
    [Main] => Array 
     (
      [1] => Main1 
      [2] => Content 
      [3] => Main2 
     ) 

    [Promotional] => Array 
     (
      [1] => Promotional2 
      [2] => Content 
      [3] => Promotional1 
     ) 

) 
+0

第2レベルの繰り返しでforループを使用しないのはなぜですか? – Arend

答えて

2

あなたはこれを試すこともできます:

foreach($array as $key => &$data) { 
    ksort($data); 
} 

$ data変数の前のアンパサンドは、$ data変数がポインタであることを示し、その変数への変更はすべて元の構成にカスケードされます。

+0

説明していただきありがとうございます。 – John

3

foreach($array as $key => $data) { 
    ksort($data); 
    $array[$key] = $data; 
} 
+0

時間制限が1分で持ち上がるときに受け入れます、ありがとうございます。 – John

関連する問題