平成30/ 2018-10-23 19:48
PHP Array() Sort()


~~~~ 連想配列でない場合
以下は、要素でなく、値を並べ替えるので注意すること。要素は、krsort(), ksort() を使う。

昇順
sort

降順
rsort


~~~~




shimizu@shimizu-PC ~
$ php -r '$tmp=array("2-1"=>"","1-99999"=>"","2"=>"");ksort($tmp);print_r($tmp);'
Array
(
    [1-99999] =>
    [2] =>
    [2-1] =>
)

shimizu@shimizu-PC ~
$

shimizu@shimizu-PC ~
$

shimizu@shimizu-PC ~
$ php -r '$tmp=array("2-000001"=>"","2-1"=>"","1-99999"=>"","2"=>"");ksort($tmp);print_r($tmp);'
Array
(
    [1-99999] =>
    [2-000001] =>
    [2] =>
    [2-1] =>
)

shimizu@shimizu-PC ~
$ php -r '$tmp=array("20-001"=>"","2-000001"=>"","2-1"=>"","1-99999"=>"","2"=>"");ksort($tmp);print_r($tmp);'
Array
(
    [1-99999] =>
    [2] =>
    [2-000001] =>



-------------------------------------------------------------------------------------------
昇順だと、空文字が上にくる。
----
shimizu@shimizu-PC ~
$ php -r '$tmp=array("JR"=>"",""=>"");ksort($tmp);print_r($tmp);'
Array
(
    [] =>
    [JR] =>
)

shimizu@shimizu-PC ~
$ php -r '$tmp=array("JR"=>"",""=>"");krsort($tmp);print_r($tmp);'
Array
(
    [JR] =>
    [] =>
)


-------------------------------------------------------------------------------------------
// 昇順(連想配列)
ksort($array);

// 降順(連想配列)
krsort($array);
(foreach() と組み合わせることはできません)
foreach(krsort($array) as $k => $v){ echo $v; }


// Thanks.
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k08.htm
■連想配列キーソート(昇順)

  ・連想配列を ksort でキー昇順ソートできる。

  $a = array('key1' => 'abc', 'key2' => 'def', 'key3' => 'ghi');
  ksort($a);

  foreach ($a as $key => $tmp) {
    print "<P>$key - $tmp</P>\n";
  }