suin.io

PHPで状況に合わせて配列をソートし、どうでもいいキーには適当に並べるスクリプト

suin2008年11月5日
一定の配列に関して、ソートをかけるのですが、単にソートするのではなく、関心のある項目だけソートし、それ以外のどうでもいい項目は、後付けするという処理を作ってみた。

まあ、大したことはないけど。

<?php
$fruits = array(
'water_melon' => '500yen',
'mikan' => '100yen',
'kaki' => '150yen',
'strowberry' => '400yen',
);

$winterOrder = array();
$winterOrder[] = 'mikan';
$winterOrder[] = 'kaki';

$summerOrder = array();
$summerOrder[] = 'water_melon';
$summerOrder[] = 'strowberry';

function makeRanking($fruits, $orderLists)
{
$ret = array();

foreach ( $orderLists as $fruitName ) {

if ( isset($fruits[$fruitName]) ) {
$ret[$fruitName] = $fruits[$fruitName];
unset($fruits[$fruitName]);
}
}

foreach ( $fruits as $fruitName => $fruit ) {
$ret[$fruitName] = $fruit;
}

return $ret;
}


echo "冬の果物お勧めランキング\n";
echo "冬はやっぱり、こたつでミカンです。\n";

print_r(makeRanking($fruits, $winterOrder));


echo "夏の果物お勧めランキング\n";
echo "夏はやっぱり、縁側でスイカです。\n";

print_r(makeRanking($fruits, $summerOrder));
?>
実行結果:
冬の果物お勧めランキング
冬はやっぱり、こたつでミカンです。
Array
(
[mikan] => 100yen
[kaki] => 150yen
[water_melon] => 500yen
[strowberry] => 400yen
)
夏の果物お勧めランキング
夏はやっぱり、縁側でスイカです。
Array
(
[water_melon] => 500yen
[strowberry] => 400yen
[mikan] => 100yen
[kaki] => 150yen
)

RELATED POSTS