6

私は次のように見えるかなり大きな配列を持っています

Array(
   [0] => stdClass Object
        (
            [id] => 8585320
            [title] => the title
            [type] => page
            [url] => link.com
            [excerpt] => brief description
        )

    [1] => stdClass Object
        (
            [id] => 8585320
            [title] => the title
            [type] => page
            [url] => link.com
            [excerpt] => brief description
        )
 )

私は配列が形成される方法とそれがどのように出てくるかを明確に制御することはできません。それに対する論理はほとんどないようです。しかし、私はそれに固執しています。したがって、私が行う必要があるのは、基本的に配列を取得して、各stdClassオブジェクトごとに数値で並べ替えてから、IDが最大から最小であり、最小から最大ではないことを確認することです。配列オブジェクトの組み合わせの現在の構造を維持しながら、

今のところ、必要な方法で並べ替える方法を考えることすらできません。すでに十分長い日だったので。

アップデート

public function updateRet($a, $b) {
        return $b->id - $a->id;
    }
usort($ret, 'updateRet');  
4

1 に答える 1

12

使用するだけusortです:

function compare_some_objects($a, $b) { // Make sure to give this a more meaningful name!
    return $b->id - $a->id;
}

// ...

usort($array, 'compare_some_objects');

PHP 5.3以降を使用している場合は、無名関数を使用することもできます。

usort($array, function($a, $b) { return $b->id - $a->id; });
于 2012-06-21T00:01:41.640 に答える