h1〜h6をサイジングに使用した配列からタグクラウドを生成する最良の方法は何ですか?
2023-08-27 23:49:07
質問
以下のような配列があります。
$artist = array("the roots", "michael jackson", "billy idol", "more", "and more", "and_YET_MORE");
$count = array(5, 3, 9, 1, 1, 3);
で数値の大きいアーティストが表示されるようなタグクラウドを生成したい。
$count
で囲まれた
h6
タグで囲まれ、最下段の
h1
タグで囲まれています。
どのように解決するのですか?
対数関数も追加したくなりますね。(タグクラウドを作成するDrupalモジュール、tagadelicから引用 http://drupal.org/project/tagadelic ):
db_query('SELECT COUNT(*) AS count, id, name FROM ... ORDER BY count DESC');
$steps = 6;
$tags = array();
$min = 1e9;
$max = -1e9;
while ($tag = db_fetch_object($result)) {
$tag->number_of_posts = $tag->count; #sets the amount of items a certain tag has attached to it
$tag->count = log($tag->count);
$min = min($min, $tag->count);
$max = max($max, $tag->count);
$tags[$tag->tid] = $tag;
}
// Note: we need to ensure the range is slightly too large to make sure even
// the largest element is rounded down.
$range = max(.01, $max - $min) * 1.0001;
foreach ($tags as $key => $value) {
$tags[$key]->weight = 1 + floor($steps * ($value->count - $min) / $range);
}
そして、ビューやテンプレートで
foreach ($tags as $tag) {
$output .= "<h$tag->weight>$tag->name</h$tag->weight>"
}
関連
-
[解決済み】phpのシンタックスエラー、予期しないT_IFエラーを修正する方法は?[クローズド]。
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] ずっとUTF-8
-
[解決済み] JavaScriptで配列を複製する最速の方法 - スライス vs. 'for'ループ
-
[解決済み] JavaScript を使用して配列からオブジェクトを削除する
-
[解決済み] 配列の最後の要素を削除せずに取得する最適な方法は?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】Rubyで配列を反復処理するための「正しい」方法は何ですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
[解決済み】未定義の関数mysql_query()をLoginで呼び出す【重複
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み】PHPのクラスが見つからないが、インクルードされている