2011-01-26 14 views
1

私はseason_numberでこの配列をソートしようとしていますが、私は本当に私はカスタムソートが必要と仮定してどの関数を使用するかわからない?何か案は?並べ替え多次元配列のヘルプ

Array 
(
    [0] => Array 
     (
      [season_number] => 7 
      [show_id] => 21 
      [show_seasons_id] => 14 
     ) 

    [1] => Array 
     (
      [season_number] => 6 
      [show_id] => 21 
      [show_seasons_id] => 31 
     ) 

    [2] => Array 
     (
      [season_number] => 1 
      [show_id] => 21 
      [show_seasons_id] => 40 
     ) 

    [3] => Array 
     (
      [season_number] => 2 
      [show_id] => 21 
      [show_seasons_id] => 41 
     ) 
) 

答えて

1

function compare_my_elements($arr1, $arr2) { 
    $s1=$arr1["season_number"]; 
    $s2=$arr2["season_number"]; 
    if($s1 == $s2) return 0; 
    return ($s1 > $s2 ? 1 : -1); 
} 

usort($my_md_array, compare_my_elements); 
1

このお試しください:$配列は、あなたがプリントアウト配列です

foreach ($array as $key => $val) { 
    $newArr[$key] = $val['season_number']; 
} 
array_multisort($newArr, SORT_ASC, $array); 

を。

あなたが '比較' 機能を usort機能を使用することができます
+0

素敵な1 ... '$のlink'はおそらく' $のval'になることだろうけれども。 – xtofl

+0

@xtoflああ、はい、あなたは正しいです。申し訳ありませんが、これは私が使用する頻繁なコードであり、コピーして貼り付けました。あなたの例のように私はusortを使っていましたが、私はこの方法が少し速いことを発見しました。あなたが異なる知見を持っていれば教えてください。 – jb1785

+0

私はそれをチューニングしなかった。これは、「キー」が1回だけ抽出されるために速くなる可能性がありますが、ユーザー定義関数では、ソートアルゴリズムの各比較操作にキー抽出ロジックが必要です。 – xtofl

関連する問題