http://www.php.net/manual/ja/function.usort.php
http://www.php.net/manual/ja/function.uasort.php
http://www.php.net/manual/ja/function.uksort.php
それぞれ、戻り値(数値)の昇順にソートされます。
<?php
$origin = $array = [
'x' => 'XXXX',
'xxx' => 'XX',
'xx' => 'XXX',
'xxxx' => 'X',
];
// $arrayを、文字数の少ない値順でソートする。キーは0から振り直される
usort($array, function ($x, $y) {
return strlen($x) - strlen($y);
});
print_r($array);
/*
Array
(
[0] => X
[1] => XX
[2] => XXX
[3] => XXXX
)
*/
// $arrayを元に戻す
$array = $origin;
// $arrayを、文字数の少ない値順でソートする。キーは維持される
uasort($array, function ($x, $y) {
return strlen($x) - strlen($y);
});
print_r($array);
/*
Array
(
[xxxx] => X
[xxx] => XX
[xx] => XXX
[x] => XXXX
)
*/
// $arrayを、文字数の少ないキー順でソートする
uksort($array, function ($x, $y) {
return strlen($x) - strlen($y);
});
print_r($array);
/*
Array
(
[x] => XXXX
[xx] => XXX
[xxx] => XX
[xxxx] => X
)
*/
No comments:
Post a Comment