0

重複の可能性:オブジェクトの配列
を並べ替える PHPでオブジェクト配列を
並べ替える

編集:これは重複した質問です。これを閉じるだけ

$articles に格納されているオブジェクトの配列があり、特定の順序で返されるとは限りません。idarticles に基づいてオブジェクトを並べ替えようとしています。JavaScriptでこれを行う方法は知っていますが、PHPで行う方法がわかりません。応答の例を次に示します。読みやすくするために json_encode でエコーアウトしました。どんな助けでも素晴らしいでしょう

[
   {
      "idarticles":"61",
      "full_text":"",
      "main_image":"",
      "tags":null,
      "url":null,
      "summary":null,
      "title":"No Title Given"
   },
   {
      "idarticles":"64",
      "full_text":"",
      "main_image":"http:\/\/i2.cdn.turner.com\/cnn\/dam\/assets\/121014085050-11-stratos-1014-horizontal-gallery.jpg",
      "tags":"Sound,New Mexico,Maxima and minima",
      "url":"some string",
      "summary":"text",
      "title":"text"
   },
   {
      "idarticles":"63",
      "full_text":"",
      "main_image":"http:\/\/i2.cdn.turner.com\/cnn\/dam\/assets\/121014085050-11-stratos-1014-horizontal-gallery.jpg",
      "tags":"Sound,New Mexico,Maxima and minima",
      "url":"some string",
      "summary":"text",
      "title":"text"
   }
]
4

3 に答える 3

1

それは簡単です-uasort関数を使用します(これはユーザー定義のソートです):

uasort($yourData, function ($a, $b) {
    if ($a['idarticles'] == $b['idarticles']) {
        return 0;
    }
    return ($a['idarticles'] < $b['idarticles']) ? -1 : 1;
});

ここでの比較関数はかなり標準的です (こちらの例を参照してください) - 値自体ではなく、データ内の特定のキーでソートするだけです。

于 2012-10-18T02:18:12.333 に答える
0

使ってみてくださいusort:

function sortByArticleId($a,$b){
  return strcmp($a->idarticles,$b->idarticles);
}

usort($ary,'sortByArticleId');
于 2012-10-18T02:17:39.690 に答える
0

あなたは簡単に行うことができます

usort($list, function ($a, $b) {
    $a = $a['idarticles'];
    $b = $b['idarticles'];
    return ($a == $b) ? 0 : (($a < $b) ? -1 : 1);
});
于 2012-10-18T02:18:32.737 に答える