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

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

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 対応

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

日付比較

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

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

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

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

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

PHPの覚え方

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

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

配列の解説

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

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

PHPを使って作るCMS

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

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

POST送信

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

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

PHP覚え方

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

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

PHPで作るカレンダー

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

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

WEB言語紹介

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

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

URLの疑似静的化

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

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

交差監視

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を使った横スライドの簡単な作り方と事例紹介です。 簡単便利はいいことだ。

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

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

ゲーミングチェア
1位

ゲーミングチェア

AmazonプライムデーでゲーミングチェアAKRACINGを購入。バケットシートと180度倒せるリクライニングシートレビュー

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

MusicBeeのレイアウト変更方法

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

Amazon Fire TV Stick
3位

Amazon Fire TV Stick

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

車用スマホホルダー
4位

車用スマホホルダー

スマホをカーナビとして使うと熱さで充電ができなくなるので、熱対策と1年間使って外れることがなかったスマホホルダーの紹介。

イヤーピース EP-TC50M
5位

イヤーピース EP-TC50M

耳にフィットするイヤーピースを探して、いろいろ検討した結果、SONYのEP-TC50Mを購入しました。

昭和記念公園
6位

昭和記念公園

東京都立川市にある国営昭和記念公園に家族で遊びに行きました。 広大な園内にはいろいろな遊具や春の花や大きな原っぱがあります。

AM-AX1800HP
7位

AM-AX1800HP

Wifi6対応&メッシュ接続ができるWifi無線LANです。メッシュ接続で部屋をまたいでも接続先が変わらず快適になりました!

WI-1000Xレビュー
8位

WI-1000Xレビュー

ソニーの2017年秋の新作ワイヤレスイヤホンWI-1000Xを購入して初めてノイズキャンセルを体験レビュー

ロリポップサーバーの安定感
9位

ロリポップサーバーの安定感

ロリポップハイスピードプランは価格も安く、表示速度も速い。 しかもアクセス耐性も高いとなるとほんと選んでよかったと思います

撮影スペースDIY
10位

撮影スペースDIY

空いたスペースを活用して商品撮影スペースを自作しました。 白い布とLEDライトと空間があればだれでも作れる撮影BOX

カテゴリ一覧

オススメ商品レビュー

オススメ商品レビュー

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

WEB制作

WEB制作

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

カメラ

カメラ

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

美味しいもの

美味しいもの

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

Amazonプライム動画

Amazonプライム動画

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

旅LOG

旅LOG

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

プロフィール

プロフィール

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

日記

日記

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

thanks

thanks

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

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

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

2,750
(税込)