配列とランダム生成で作るランダム表示バナー

配列とランダム生成で作るランダム表示バナー

PHPで作るランダムバナー表示プログラム

#180 ランダム表示バナー

WEB制作

PHPでランダム表示させるバナープログラムです。 バナーと言っていますが、別にバナーじゃなくてもランダムで表示できます。 限られたスペースでいろいろな種類のバナーを表示させたい時などに便利です。

公開日:
最終更新日:

サイトマップサイトマップ

PHPでランダム表示のバナーを作る

固定スペースにランダムのバナーを表示するPHPプログラムを紹介します。

アクセスする度に、異なるバナーを表示させる仕組みです。
バナーと言っていますが、バナーじゃなくても表示可能です。

配列 + 乱数生成で手軽に管理

ランダム表示させる仕組みを簡単にまとめます。

表示させたいバナーを配列にする
rand(0,3) → 0~3の乱数を生成する。
生成した乱数を配列のキーに使い、バナーを表示させる

<?php 
//バナーを代入する配列
$bunner = array();

//配列にバナーを代入する
$bunner[0] = '<a href="リンク先"><img src="バナーパス"></a>';
$bunner[1] = '<a href="リンク先"><img src="バナーパス"></a>';
$bunner[2] = '<a href="リンク先"><img src="バナーパス"></a>';
$bunner[3] = '<a href="リンク先"><img src="バナーパス"></a>';

//ランダム生成
$ran = rand(0,3);

//ランダム数からバナーを表示
echo $bunner[$ran];
?>

これでランダム表示のバナーの仕組みが作れるのですが、乱数生成の範囲指定を手動で設定するのが面倒なので、自動で乱数範囲を取得します。

配列の数を取得して使う

PHPには配列の数を取得する count()という関数があるので、それを使います。

配列の数に応じた乱数を取得するコード

//配列の数を取得して -1する
$ct = count($bunner) -1;

//ランダム生成
$ran = rand(0,$ct);

注意点として、count()で取得する数は始まりが1から、
配列のキーは0から始まるのでその点だけ注意が必要です。

サンプルコードで確認してみましょう。

$test = array();
$test[0] = '1つ目の配列';
$test[1] = '2つ目の配列';
$test[2] = '3つ目の配列';
$test[3] = '4つ目の配列';
echo '配列の数:'.count($test).'<br>';
var_dump($test);

サンプルコードの出力結果

配列の数:4
array(4) { [0]=> string(16) "1つ目の配列" [1]=> string(16) "2つ目の配列" [2]=> string(16) "3つ目の配列" [3]=> string(16) "4つ目の配列" }

通常であればなんら問題のないコードなのですが、乱数の終わり値として使うと、配列の数字とずれが生じます。

count()で生成した数をそのまま利用すると、0~4の乱数が発生しますが、配列のキーは0~3までしか存在しないためです。

というわけで、count()で取得した数を-1すればOKです。

配列のKeyを1から始めるのは?

-1しないで、配列のKeyを1から始めれば、それでも問題ありません。

ただ、配列は「0」から始まるのが基本のルールなので、それを変えるよりは、-1をする方が個人的には良いかなと思います。

この辺は自分のやりやすいやり方で良いと思います。

管理も簡単なランダムバナーのプログラム

実際にコードを書いて確認してみます。

今までの流れをまとめてコードにすると以下のようになります。

<?php 
//バナーを代入する配列
$bunner = array();

//配列にバナーを代入する
$bunner[0] = '<a href="リンク先"><img src="バナーパス"></a>';
$bunner[1] = '<a href="リンク先"><img src="バナーパス"></a>';
$bunner[2] = '<a href="リンク先"><img src="バナーパス"></a>';
$bunner[3] = '<a href="リンク先"><img src="バナーパス"></a>';

//配列の数を取得して -1する
$ct = count($bunner) -1;

//ランダム生成
$ran = rand(0,$ct);

//ランダム数からバナーを表示
echo $bunner[$ran];
?>

バナーの数を増減したい場合は、$bunnerの配列を増加・減少させれば、表示用のランダム生成を変更することなく、ランダムバナーの表示が可能です。

PHPが使えるサーバーならこれでお手軽にランダムバナー表示が可能です。
バナー以外にランダムテキストとかにも使えます!

WEBデザイナー・プログラミング学習にオススメ

ランダム表示バナーの関連ページ

日付比較

キャンペーン期間中だけ表示させるPHPプログラム

期間限定の表示は訴求が強いけど、取り忘れるとユーザーに損した気分を与えてしまうので、忘れずにしっかり対応したいですね。

カレンダーの作り方2

PHP+jQueryで作る土日祝日が選べないカレンダーの作り方

PHPで作るカレンダーの作り方の第二弾です。 今回はクリックした日付を取得してformに代入するところも解説してます。

PHPの覚え方

PHPの良いところは難しいと思われていること

PHPって人が思っているほど難しくなく、便利でいろいろな面白いものを作れるプログラミング言語です。

配列の解説

PHPの連想配列の多次元配列を使ったクイズの作り方

PHPの配列ってイメージは付くけどちゃんと理解するのが難しい。 例題がわかりづらいせいだと思うんですよね。これはわかりやすい。

PHPを使って作るCMS

PHPを覚えたらSQLも覚えて自作のCMSを作ってみよう

PHPを覚えたらデータベース回りも一緒に覚えるのがオススメです、 制作できるものの幅が広がって色々な仕組みを理解できます

カレンダー

PHP+HTMLで作る 祝日対応のカレンダーの作り方

forとifとforeachがメインのPHPによるカレンダーの作り方です。 祝日設定がちょっとめんどくさいんですよね。

POST送信

PHPを使った漢字クイズの作り方解説 その1 POST送信

【初心者向け】PHPを使った漢字クイズの作り方を解説します。1回目はGETとPOSTの簡単な解説から実際に使うPHPの紹介です。

PHP覚え方

PHPを手っ取り早く覚えるには作りたいものを作ること

PHP単体でもHTMLよりもできることの幅はひろがるけれど、それにプラスしてデータベースを扱えるようになると無敵感を味わえます。

WEB言語紹介

WEB制作をささえるHTML・CSS・Javascript・PHP

いつもWEB制作をささえてくれるいろいろな言語を紹介しています。 他にもMySQLがあるんですが長くなるので割愛しました

交差監視

Intersection Observer APIを図解で解説

Intersection Observerを仕事で使ったときに理解度が足りないと感じわかりやすい解説記事を書きました。

つまづきやすい5つのポイント

【初心者むけ】Jqueryのつまづきやすい5つのポイント解説

Jqueryの構文がわかってなかったとき、とりあえずコピペして使ってました。 ちゃんと理解して使うとできることが増えます

スクロール監視

スクロール監視の新定番 intersecton observer API

スクロールに応じて何を変更させたりするときに便利なintersecton Observer APIの解説記事です。

indexOf

JavaScriptのIndexOfの使い方の復習

indexOfを使ってindex番号を取得する方法の解説記事を書いていたら、indexOfを使わなくても取得できました。

アンカーリンクナビ

交差監視を利用したアンカーリンクナビゲーション

JavaScriptの「Intersection Observer」を使い、ナビゲーションが変化するアンカーリンクを作りました。

bookblock

本をめくるJqueryライブラリ bookblock

本をめくるようなモーションを実現するbookblock.jsを改造してレスポンシブ対応にしてみました。

jquery-match-height.js

高さを簡単に揃えるjquery-match-height.js

簡単に要素の高さを揃える「jquery-match-height.js実際の使用例をわかりやすく画像付きで解説しています。

CLS対策上級編

CLS対策上級編 CSSのインライン化とAdcence遅延読み込み

CSSのインライン化とGoogle Adcence遅延読み込みでGoogleのスコアを大幅に改善しCLSもほぼ0にしました

CLS対策初級編

CLS改善をしてPageSpeed Insightsを大幅改善

CLS(Cumulative Layout Shift)を改善する方法とCLSを確認する方法などをまとめました。

CSSで作る横スライド

1行のCSSで作る横スライドの作り方

CSSのoverflow-x: scrollを使った横スライドの簡単な作り方と事例紹介です。 簡単便利はいいことだ。

marginとpadding

CSSのmarginとpaddingの違いについて

CSSのmarginとpaddingの違いについて解説しました。 余白をつくるプロパティの使いわけおを考える。

SNSでこの記事をシェアできます

ブログ デイリーアクセスランキング

ノートPCスタンド
1位

ノートPCスタンド

ノートパソコンを横にしまうと結構な専有面積があるのですが、立てて収納できればわずか数cmで使えるので本当に快適です!

MusicBeeのレイアウト変更方法
2位

MusicBeeのレイアウト変更方法

MusicBee 3.1のレイアウトをデフォルトの状態から、自分好みのレイアウト設定に変更する方法を写真付きで紹介しています。

ウルトラブースト
3位

ウルトラブースト

一度はいたら手放せない! アディダスの「ウルトラブースト」搭載のハイテクシューズのレビューとオトクに購入する方法です

コンプライ
4位

コンプライ

評判と値段の高いコンプライのイヤーピースの購入後1週間レビュー!柔らかいウレタン素材のイヤーピースは装着前に指でつぶして耳穴に装着します。

アンズテック
5位

アンズテック

小学生向けのゲームプログラミングオンラインスクール「アンズテック」。 仕様言語は「Scratch」と「Unity」となっています。

ミトラ
6位

ミトラ

肩こりは普段の姿勢と肩甲骨の稼働範囲の狭さが原因なので、肩甲骨のストレッチと正しい睡眠姿勢は大事だなと感じました。

CLS対策初級編
7位

CLS対策初級編

CLS(Cumulative Layout Shift)を改善する方法とCLSを確認する方法などをまとめました。

NORDACE
8位

NORDACE

NORDACEのSIENAというシンプルで機能的で収納力に優れたノートパソコンも入れられるナイスなリュックのレビューです

ロジクール マウス
9位

ロジクール マウス

PCを操作するのに必要なマウス。高級品でも安いマウスでも操作をするという点においては大差はありません。違いがあるのは操作に対する満足感。

MusiceBee
10位

MusiceBee

PCで音楽の再生と管理をするならiTunseよりもMusicBeeがオススメです。軽くて早くて便利で使いやすい。

カテゴリ一覧

オススメ商品レビュー

オススメ商品レビュー

世の中にある比較サイトや、いかがでしたか系サイトが嫌いなんです。使ってないのにえらそうなこと言うなと。なので体験談です。

WEB制作

WEB制作

WEBサイトを作れますと一言に言っても色々な技術があるわけですよ。アウトプットの形は一緒でもいろいろこだわりがあるんです。

カメラ

カメラ

2018年4月に購入したソニーのミラーレス一眼「α7Ⅲ」に関連する記事一覧ページです。 作例集やカメラグッズレビューなど。

美味しいもの

美味しいもの

食に関してはあまりこだわりがないんですけどね、こだわりがない分美味しいと思ったものは本当においしいと思ったものなんですよ

Amazonプライム動画

Amazonプライム動画

Amazonプライム会員なら無料で利用できるAmazonプライム動画から、いろいろな動画をみたレビュー記事のまとめページ

旅LOG

旅LOG

家族旅行やおでかけした際の旅ブログです。夏休みの家族旅行(4人家族)で訪れた観光名所の感想などを記しています。

プロフィール

プロフィール

Start-Point.netの管理人のプロフィール紹介を兼ねた、自分の中のルールや決め事やエピソードなでお書いていきます

日記

日記

日記と言っても色々な日記があるわけで、記録的な日記や心理描写を色濃く描いた日記などをまとめたページです。

thanks

thanks

自分を表現することって意外と難しいんですよね。照れがあったり、間違ったこといってないかとよくわからない何かと戦ったりして。