0

phpでの検索文字列の出現に応じて2次元配列を並べ替えたいと思います。検索文字列の関連性に従ってデータをフェッチしようとしました。対戦と対戦に出くわしましたが、MYISAMで機能しますが、私のテーブルはinnodbにあります。したがって、任意の並べ替え関数を使用して配列を並べ替える予定ですが、何も見つかりません。

私の検索圧力は文字列配列です

  Array
   (
      [0] => pressure
       [1] => tes
    )

上記の文字列とタイトルが一致する出力配列は次のとおりです。

 Array
(
[0] => Array
    (
        [title] => tests.doc
        [link] => http://localhost/test.doc
        [snippet] => 
    )

[1] => Array
    (
        [title] => Pressure Testing Your Company
        [link] => http://localhost/Pressure_Testing_Your_Companys.pdf
        [snippet] => Questions used by the CFO against dimensions critical to success
    )

[2] => Array
    (
        [title] => pressure.doc
        [link] => http://localhost/pressure.doc
        [snippet] => Templates for services
    )

)。

上記の配列では、最も関連性の高い配列[1]、配列[2]、配列[0]の順である必要があります。それに応じてこの配列を並べ替えたいと思います。私の出力は次のようになります

 Array
(

[0] => Array
    (
        [title] => Pressure Testing Your Company
        [link] => http://localhost/Pressure_Testing_Your_Companys.pdf
        [snippet] => Questions used by the CFO against dimensions critical to success
    )

[1] => Array
    (
        [title] => pressure.doc
        [link] => http://localhost/pressure.doc
        [snippet] => Templates for services
    )
[2] => Array
    (
        [title] => tests.doc
        [link] => http://localhost/test.doc
        [snippet] => 
    )

)

私を助けてください!!!!

4

1 に答える 1

1

例3を見てください、私はそれがあなたが望むものだと思います。

http://php.net/manual/en/function.array-multisort.php

これをテストしたところ、機能しているようです:

$titles = array();

foreach ( $array as $key => $value ) 
{
    $titles[ $key ] = $value['title'];
} 

array_multisort( $titles, SORT_ASC , $array );

MySQLクエリで結果を並べ替えることを強くお勧めします。これにより、パフォーマンスが大幅に向上します。

于 2012-11-16T07:17:25.930 に答える