忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


2024/04/17 03:59 |
連想配列のソート
連想配列のソートでこれまで色々と苦労してきたんですが、ついさっきものすごい便利な関数を発見しました。
その名も array_multisort 。


[PHP]

// ソートしたい配列を定義
$dataArray[0]['name'] = '太郎';
$dataArray[0]['age'] = '15';
$dataArray[1]['name'] = '花子';
$dataArray[1]['age'] = '5';
$dataArray[2]['name'] = '清盛';
$dataArray[2]['age'] = '45';

// ソートしたい項目を定義
$sort = 'age';

// ソートの順序を定義
$order = 'DESC';


// ソートの開始
// マルチソートに使用する配列を生成
$arrayForSort = array();
foreach ($dataArray as $data) {
    $arrayForSort[] = $data[$sort];
}

// ソートの順序(昇順/降順)を決定
if (ereg("(desc|Desc|DESC)", $order)) {
    $order = SORT_DESC;
} else {
    $order = SORT_ASC;
}

// ソートの実行
array_multisort($forSort, $order, $dataArray);


// 結果の表示
print_r($dataArray);



結果については割愛しますが、上記の例でいくと、清盛→太郎→花子の順になります。
関数化しようとしてたせいか、なんだか間延びしたコードですが、気にせず必要な部分だけ使ってください(笑)


[参考文献]
www.akiyan.com/blog/archives/2007/10/phparray_multis.html
jp2.php.net/array_multisort



PR

2008/08/10 02:13 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



| HOME | 半角/全角の変換方法>>
忍者ブログ[PR]