Home > Archives > March 2012

March 2012

配列 ソート

なんだかんだで半年も書いてない・・・
なので無理クリ何かお題を書いてみる


とりあえず、明けすぎましておめでとうございます

本年もバリッバリに稼動しております(*゜ー゜)


さて、連想配列の値をソートしたい!
なんてざらにあるわけでして

単に「php 配列 ソート」でググっても何を使ったらいいのかわからなーい
と思う人もいるでしょう
こんなにいろいろありますよね->PHP


とりあえず、ksort()、asort()使えばええやろー
的なのはダメダメッス

効率のよい選択をしないとパフォーマンスは愕然と落ちます
そもそも適当に関数にぶち込んだだけでは目的の解は得られないでしょうが・・・


なので私が良く使うパターンを書こうかなと思います
全てを利用したことはないんですけどね(-_-;)

単純な連想配列の場合
 $array = ('hoge' => 1, 'hogege' => 6, 'fugafu-' => 3);
 キーソートの場合は、ksort,krsort
 値ソートの場合は、asort,arsort
 *但し、値がStringの場合はarray_multisort を使う場合もあり

多次元配列の場合 [配列の要素が、不変の場合]
 $array['hoge'] = ('hoge' => 1, 'hogege' => 5, 'hogeho-' => 3);
 $array['fuga'] = ('hoge' => 6, 'hogege' => 1, 'hogeho-' => 2);
 array_multisortを使用

多次元配列の場合 [配列の要素が、可変の場合]
 $array['hoge'] = ('hoge' => 1, 'hogeho-' => 3, 'fugafuga' => 4);
 $array['fuga'] = ('hoge' => 6, 'hogege' => 1, 'hogeho-' => 2);
 usortを使用
 *array_multisortを利用した方がパフォーマンス的には格段に上がりますが、定義するのが面倒
 そもそも、パフォーマンスを上げるのであれば配列を使用せず、別の方法でデータを扱うべきだと考える


使用例は、コツラ



まぁ、書いてみて思ったが自分本位過ぎる別け方だな・・・
そして解りづらい気がする





  • TrackBack (Close): -

More...

Home > Archives > March 2012

Search
Feeds

Page Top