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

phpの配列の取得について質問させていただきます。

array(35) { ["ああ"]=> int(5) ["あああ"]=> int(4) ["あたま"]=> int(4) ["スタバ"]=> int(3) ["test"]=> int(3) ["あ"]=> int(2) ["テスト"]=> int(2) ["えええ"]=> int(2) ["風景"]=> int(1)・・・・ }

このような配列にて
int()の降順で上位5位だけを抜き出したい場合はどのようにしたらよいでしょうか。
intの値は日々変化します。

array(35) { ["ああ"]=> int(5) ["あああ"]=> int(4) ["あたま"]=> int(4) ["スタバ"]=> int(3) ["test"]=> int(3) }

という形にしたいのですが調べても思い浮かばなく。


ご知見のあるかたいらっしゃいましたらご教授くださいませ。

どうぞよろしくお願いいたします。

●質問者: aiueo
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● y-kawaz
●100ポイント ベストアンサー

↓こんな感じでソートしてやればすぐ出来ます。

<?php
$arr = array(
 "ああ" => 5,
 "あああ" => 4,
 "あたま" => 4,
 "スタバ" => 3,
 "test" => 3,
 "" => 2,
 "テスト" => 2,
 "えええ" => 2,
 "風景" => 1,
);

//キーを維持して値で逆順ソート
arsort($arr);

//配列の先頭から5個分を取り出す
$top5 = array_slice($arr, 0, 5);

print_r($top5);

↓出力結果

Array
(
 [ああ] => 5
 [あたま] => 4
 [あああ] => 4
 [test] => 3
 [スタバ] => 3
)


ソート関数は色々種類があるので以下を参考にしてください。
http://php.net/manual/ja/array.sorting.php

また、配列関連でやりたいことをどう実現すればよいか分からない場合は、
大抵マニュアルの配列のページを眺めてるとそれっぽい関数が見つかると思います。
http://www.php.net/manual/ja/book.array.php


aiueoさんのコメント
すみません!ありがとうございました。 array_sliceはみつけていたのですが、設定の仕方までは見ていませんでした。 大変助かりました!
関連質問

●質問をもっと探す●



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