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

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

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デザイナー・プログラミング学習にオススメ

記事内で紹介している商品リスト
(価格はAmazon参考価格)

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉

2,750円(税込)

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ)

3,030円(税込)

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ)

誰もがあきらめずにすむPHP超入門

1,848円(税込)

誰もがあきらめずにすむPHP超入門

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

2,068円(税込)

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

3ステップでしっかり学ぶ MySQL入門 [改訂2版]

2,728円(税込)

3ステップでしっかり学ぶ MySQL入門 [改訂2版]

Web制作者のためのSassの教科書 改訂2版 Webデザインの現場で必須のCSSプリプロセッサ

2,640円(税込)

Web制作者のためのSassの教科書 改訂2版 Webデザインの現場で必須のCSSプリプロセッサ

WordPressユーザーのためのPHP入門 はじめから、ていねいに。[第3版] 〈WordPress 5.x/Gutenberg対応〉

1,652円(税込)

WordPressユーザーのためのPHP入門 はじめから、ていねいに。[第3版] 〈WordPress 5.x/Gutenberg対応〉

詳細! PHP 8 + MySQL入門ノート XAMPP + MAMP 対応

3,520円(税込)

詳細! PHP 8 + MySQL入門ノート XAMPP + MAMP 対応

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

WEB言語紹介

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

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

URLの疑似静的化

URLの疑似静的化 動的URLを静的URLにする方法

htacessを使いhtmlファイルが存在しない静的URLを生成する方法と、仕事で使った疑似URLの活用方法の紹介です。

PHPを使って作るCMS

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

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

日付比較

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

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

PHPで作るカレンダーの作り方2

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

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

PHPの覚え方

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

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

配列の解説

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

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

PHPで作るカレンダー

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

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

POST送信

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

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

PHP覚え方

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

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

スクロール監視

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

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

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

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

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

jquery-match-height.js

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

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

indexOf

JavaScriptのIndexOfの使い方の復習

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

アンカーリンクナビ

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

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

bookblock

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

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

交差監視

Intersection Observer APIを図解で解説

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

WEBフォント設定

WEBフォント使用時の最適な設定を考える

私のサイトではNotoSansJPのWEBフォントを使用しています。 可能な限り速度とCLSを考慮して使っております。

アイキャッチの作り方

参考にならない適当につくるアイキャッチの作り方!

ブログのアイキャッチをどうやって作っているかの解説であって、効果があがるとかクリック率が高いとかそういうのじゃないです。

SVG背景

CSSとSVGを使った三角形背景の作り方

SVG背景を覚えたらborderで背景画像を作るのが馬鹿らしくなります。 それくらい簡単で汎用性の高い方法です。

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

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

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

MusicBeeのレイアウト変更方法

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

ノートPCスタンド
2位

ノートPCスタンド

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

PHPを使って作るCMS
3位

PHPを使って作るCMS

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

音楽再生
4位

音楽再生

パソコンに取り込んだ音楽をせっかくならCDコンポから再生したいと思ったことありませんか?AUXを使った外部接続の方法の紹介です。

c920n
5位

c920n

ロジクールの評判の良かったWEBカメラ「c920n」を購入し、ノートPCとデスクトップの両方で使えるようにしました!

ホワイトボード
6位

ホワイトボード

100均で買えるつっぱり棒とネットを使ってホワイトボードを窓枠に設置してみました。 ホーロー製のホワイトボードがオススメ!

Amazon Fire TV Stick
7位

Amazon Fire TV Stick

2017年4月発売の新型Amazon Fire TV Stickを1ヵ月間使った感想と、気になる視聴制限の実験レポートです。

HIHO FINE BUBBLE+
8位

HIHO FINE BUBBLE+

暖かいミストで洗顔するとすごく気持ちいいシャワー。 節水効果も高く非常に満足度の高いシャワーヘッドになっています。

アンカーリンクナビ
9位

アンカーリンクナビ

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

NORDACE
10位

NORDACE

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

カテゴリ一覧

オススメ商品レビュー

オススメ商品レビュー

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

WEB制作

WEB制作

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

カメラ

カメラ

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

美味しいもの

美味しいもの

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

Amazonプライム動画

Amazonプライム動画

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

旅LOG

旅LOG

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

プロフィール

プロフィール

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

日記

日記

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

thanks

thanks

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

記事内で紹介している商品

初心者からちゃんとしたプロになる PHP基礎入門〈PHP8対応〉

2,750
(税込)