3

この配列が与えられた場合:

Array
(
[0] => Array
    (
        [title] => this is the newest post
        [ssm_featured_post_id] => 70
    )

[1] => Array
    (
        [title] => sdfsfsdf
        [ssm_featured_post_id] => 63
    )

[2] => Array
    (
        [title] => test
        [ssm_featured_post_id] => 49
    )

[3] => Array
    (
        [title] => Hello world!
        [ssm_featured_post_id] => 1
    )

)。

ssm_featured_post_id値は、2番目の配列の配列項目の値に対応します。最初の配列アイテムを2番目の配列のアイテムと同じ順序で並べたい

Array
(
    [1] => 63
    [0] => 70
    [3] => 1
    [2] => 49
)

したがって、並べ替え後の結果は次のようになります。

Array
(
[0] => Array
    (

        [title] => sdfsfsdf
        [ssm_featured_post_id] => 63
    )

[1] => Array
    (
        [title] => this is the newest post
        [ssm_featured_post_id] => 70
    )

[2] => Array
    (
        [title] => Hello world!
        [ssm_featured_post_id] => 1

    )

[3] => Array
    (
        [title] => test
        [ssm_featured_post_id] => 49
    )

)
4

2 に答える 2

2

より簡単な方法は、usortを使用し、2番目のテーブルを使用して最初のテーブルの2つの値を比較する関数を作成することです。

于 2012-10-30T20:40:25.157 に答える
1

array_multisort、特に3番目の例を確認することをお勧めします。多次元配列の「列」に基づいて配列を作成し、それらを同時に並べ替えて、結果を元の配列に戻すという考え方です。

于 2012-10-30T20:38:03.140 に答える