-1

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

$user_data = array();
while($row=mysql_fetch_array($result))
{
$user_data[$row['id_user']]['id_user'] = $row['id_user'];
$user_data[$row['id_user']]['firstname'] = $row['firstname'];
$user_data[$row['id_user']]['lastname'] = $row['lastname'];
$user_data[$row['id_user']]['avatar'] = $row['avatar'];
}

たとえば、php(SQLやJqueryではなく)を使用してファーストネームでソートしたいと思います。

4

5 に答える 5

0

ドキュメントを見てください。

SORT_STRINGファーストネームでソートするには、フラグを使用する必要があります。

于 2013-02-21T10:58:30.540 に答える
0

おそらく使いたいと思うのは、php の uasort 関数です。並べ替えプロセスで使用される独自の比較関数を指定できます。

PHP ドキュメント: uasort

于 2013-02-21T10:58:48.307 に答える
0

データベース クエリでファーストネームで並べ替えます。

...
ORDER BY firstname

結局のところ、データを取得するのはデータベースです。最初のステップでデータを処理できたのに、データを処理する作業を再度行う意味はありません。

于 2013-02-21T10:59:42.180 に答える
0

のマニュアルにarray_multisortは、このユースケースの正確な例があります。

$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);

// Obtain a list of columns
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// Sort the data with volume descending, edition ascending
// Add $data as the last parameter, to sort by the common key
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
于 2013-02-21T11:01:53.173 に答える
0

これをwhileループの後に追加して試してください:

$sort = array();
foreach($user_data as $k=>$v) {
    $sort['firstname'][$k] = $v['firstname'];
}

array_multisort($sort['firstname'], SORT_DESC, $user_data);


echo "<pre>";
print_r($user_data);

テストされていません。問題が発生した場合は、ここにコメントしてください。

于 2013-02-21T11:40:17.707 に答える