マルチ配列ソートPHP

multidimensional-array php sorting
マルチ配列ソートPHP

これを行う方法について頭を包むのにいくつかの問題があります。 PHPに配列があります

    array(131) {
     ["BLANF     "]=>
      array(3) {
        ["line_3"]=>
        string(4) "3.92"
        ["line_1"]=>
        string(1) "6"
        ["line_2"]=>
        string(2) "14"
      }
      ["BLOOH     "]=>
      array(3) {
        ["line_3"]=>
        string(4) "2.00"
        ["line_1"]=>
        string(1) "20"
        ["line_2"]=>
        string(1) "6"
      }

}

line_1の値に基づいてソートする必要があること。 PHPのおかげでZachary

  1  0


ベストアンサー

適切な行の値を比較する比較コールバック関数を提供することにより、http://php.net/manual/en/function.uasort.php [uasort]を使用します。

3


配列のカスタム比較関数を作成し、それを* http://php.net/manual/en/function.uasort.php [uasort()] *で使用して、配列のインデックスを維持する必要があります。

以下は、 `uasort()`を使用して `line_1`でソートする方法です…​ ネストされた配列内の他のキーでソートするように変更するのは簡単です。

*Live Example *

( `line_1`の数字を変更して、ソートが実際に何かをするようにしました)

この場合、PHPは型を調整しますが、文字列があり、それらを数値に変換しているという事実に注意する必要があります。 どうなるかわからない場合は、文字列をfloatまたはintにキャストしてください。 PHPは* http://codepad.viper-7.com/Ip3lp6 [文字列をアルファベット順に比較演算子と比較] * …​.できるため、これは重要です。 そのため、文字やコンマなどが配列の値に忍び込む可能性がある場合は、* http://php.net/manual/en/language.types.type-juggling.php [type cast] *にint( (int)$ a [" line_1 "])またはfloat( (float)$ a [" line_1 "])。

3


タイトルとURLをコピーしました