データの整列
Posted feedbacks - Other
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php
#元データ
$list = array(
array( "x"=>3,"y"=>3)
,array( "x"=>2,"y"=>10)
,array( "x"=>2,"y"=>1)
,array( "x"=>1,"y"=>2)
,array( "x"=>1,"y"=>1)
,array( "x"=>3,"y"=>1)
,array( "x"=>1,"y"=>10)
);
#辞書順
usort(
$list,
create_function(
'$a,$b',
'return ($a["x"] == $b["x"]) ? ($a["y"] > $b["y"]) : ($a["x"] > $b["x"] );'
)
);
var_dump($list);
#距離順
usort(
$list,
create_function(
'$a,$b',
'return pow($a["x"],2)+pow($a["y"],2) > pow($b["x"],2)+pow($b["y"],2);'
)
);
var_dump($list);
?>
|
2値の配列で座標を表現して、その配列をソートします。
1 2 3 4 5 6 | coordinates = Array.new(10) { [rand(10), rand(10)]}
# by dictionary
p coordinates.sort
# by distance
p coordinates.sort {|(x1, y1), (x2, y2)| (x1**2 + y1**2) <=> (x2**2 + y2**2) }
|


odz #5839() Rating1/1=1.00
(x, y) の座標情報を以下の2種類の方法で整列する機能を実現してください。
データの表現方法はタプルなり構造体/オブジェクトなり各自で適当に選んで下さい。
[ reply ]