2

単純なオブジェクトを含む配列があります。私が持っている配列は次のようになります。

[posts] => Array
    (
        [0] => WP_Post Object
            (
                [ID] => 4
                [post_title] => Post #4
                ...
             )
        [1] => WP_Post Object
            (
                [ID] => 100
                [post_title] => Post #100
                ...
             )
        [2] => WP_Post Object
            (
                [ID] => 1
                [post_title] => Post #1
                ...
             )
        [3] => WP_Post Object
            (
                [ID] => 21
                [post_title] => Post #21
                ...
             )
    )

また、投稿を表示したい順序で最初の配列の投稿 ID を含む配列があります。配列マップがそのように好きだとしましょう:

[map] => Array
    (
        [0] => 4
        [1] => 21
        [2] => 100
        [3] => 1
    )

今引用。次のような結果を得るために、Map 配列をマップとして使用して、各オブジェクト ID プロパティに基づいて、オブジェクトを含む配列を注文できますか。

[posts] => Array
    (
        [0] => WP_Post Object
            (
                [ID] => 4
                [post_title] => Post #4
                ...
             )
        [1] => WP_Post Object
            (
                [ID] => 21
                [post_title] => Post #21
                ...
             )
        [2] => WP_Post Object
            (
                [ID] => 100
                [post_title] => Post #100
                ...
             )
        [3] => WP_Post Object
            (
                [ID] => 1
                [post_title] => Post #1
                ...
             )
    )
4

2 に答える 2

2

PHP には、関数を使用してこれを行う組み込みの方法がありarray_multisortます。

$col = array();
foreach ($posts as $post) {
    $col[] = array_search($post->ID, $map);
}

array_multisort($col, $posts);

// now $posts is sorted in the order specified in $map

ここで試してみてください: http://codepad.org/5rqncj3B

于 2013-05-26T13:17:58.090 に答える