人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

初歩的な質問ですみません。
PHPプログラミングでの質問です。
仮に、配列Aに以下のように値が入っている場合、

Array
(
[いぬ] => 12
[ねこ] => 12
[ぶた] => 11
[ごりら] => 7
[たこ] => 7
[へび] => 6
[うし] => 5
[うま] => 4
[いか] => 2
)

要素の値から上位5件を配列Bに代入する処理のスマートな書き方を教えて下さい。
要素の値が重複している場合は同位とみなし、上の例だと、配列Bは、

Array
(
[0] => [いぬ]
[1] => [ねこ]
[2] => [ぶた]
[3] => [ごりら]
[4] => [たこ]
[5] => [へび]
[6] => [うし]
)

となるようにしたいです。

よろしくお願いします。

●質問者: katatsutsu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP いぬ ねこ スマート プログラミング
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● GoldenDawn
●60ポイント ベストアンサー

こんな感じでどうでしょうか。

<?php
$a = array('いぬ' => 12,'ねこ' => 12,'ぶた' => 11,'ごりら' => 7,'たこ' => 7,'へび' => 6,'うし' => 5,'うま' => 4,'いか' => 2) ;

$tmp = array_unique($a) ;
rsort($tmp) ;
$b = array() ;
for ($i = 0; $i < 5; ++$i) {
 $p = array_keys($a, $tmp[$i]) ;
 foreach ($p as $k) array_push($b, $k) ;
}

print_r($b) ;
?>
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ