35

私は配列を持っています:

Array (
    [0] => stdClass Object (
        [user_id] => 1
        [ID] => 1
        [user_login] => admin
        [display_name] => admin
        [user_email] => webbinformation@nacka.se
        [meta_value] => a:1:{s:13:\"administrator\";s:1:\"1\";}
    )
    [1] => stdClass Object (
        [user_id] => 4
        [ID] => 4
        [user_login] => ungtinflytande
        [display_name] => ungtinflytande
        [user_email] => klarakviberg@gmail.com
        [meta_value] => a:1:{s:13:\"administrator\";s:1:\"1\";}
    )
    [2] => stdClass Object (
        [user_id] => 5
        [ID] => 5
        [user_login] => inflytandepilot
        [display_name] => inflytandepilot
        [user_email] => hildalundgren@hotmail.com
        [meta_value] => a:1:{s:6:\"author\";s:1:\"1\";}
    )
    [3] => stdClass Object (
        [user_id] => 11
        [ID] => 11
        [user_login] => matsbohman
        [display_name] => matsbohman
        [user_email] => mats.bohman@nacka.se
        [meta_value] => a:1:{s:6:\"editor\";s:1:\"1\";}
    )
    [4] => stdClass Object (
        [user_id] => 12
        [ID] => 12
        [user_login] => klarakviberg
        [display_name] => klarakviberg
        [user_email] => nastasteg@nacka.se
        [meta_value] => a:1:{s:13:\"administrator\";s:1:\"1\";}
    )
)

display_name...キーで並べ替えたい。現在、次のように印刷しています。

foreach ($blogusers as $bloguser) {
    ...
}

どうすればいいですか?

4

6 に答える 6

46

usort() を使用します - http://php.net/usort

私の提案は次のとおりです。

    function cmp($a, $b)
    {
        return strcmp($a->display_name, $b->display_name);
    }

    usort($blogusers, "cmp");

    foreach ($blogusers as $bloguser)
    {
        ...
于 2010-10-26T09:32:55.033 に答える
16

usort を参照してください: http://php.net/manual/en/function.usort.php

usort($array, "my_cmp");

function my_cmp($a, $b) {
  if ($a->display_name == $b->display_name) {
    return 0;
  }
  return ($a->display_name < $b->display_name) ? -1 : 1;
}
于 2010-10-26T09:34:22.480 に答える
0

配列は、データベース クエリの結果のように見えます。この場合、データベースに並べ替えを行わせORDER BY display_nameます。クエリに追加するだけです。

于 2015-12-22T18:21:50.857 に答える
0

次の記事をご覧ください。使用方法を説明し、単一の関数を使用してさまざまなフィールドで並べ替えることができるようusort()にする方法についても説明します (必要な方向またはを使用)。create_function()ascdesc

http://phpave.com/sorting-associative-array-specific-key/

于 2015-05-04T20:38:04.180 に答える