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

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

チョコザップ体験談!44歳男性がチョコザップに行ってみた

はじめてのチョコザップ体験談!
チョコザップで運動不足解消!

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問付き! (スッキリわかる入門シリーズ)

2,449円(税込)

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

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

1,848円(税込)

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

SQL 第2版: ゼロからはじめるデータベース操作

2,068円(税込)

SQL 第2版: ゼロからはじめるデータベース操作

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

1,306円(税込)

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

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

2,640円(税込)

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

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

Amazon SALE中
¥2,640 19%OFF 490円OFF

2,150円(税込)

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の連想配列の多次元配列を使ったクイズの作り方

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

PHPを使って作るCMS

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

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

日付比較

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

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

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

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

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

PHPの覚え方

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

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

POST送信

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

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

PHP覚え方

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

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

PHPで作るカレンダー

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

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

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

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

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

スクロール監視

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

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

アンカーリンクナビ

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

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

bookblock

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

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

jquery-match-height.js

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

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

indexOf

JavaScriptのIndexOfの使い方の復習

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

交差監視

Intersection Observer APIを図解で解説

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

スクロール変換

縦スクロールを横スクロールに変換するJavaScript

縦にスクロールした分だけ、横にスクロールするJavaScriptを応用して、その場にとどめながら透明度を変化させます。

SVG背景

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

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

配色ジェネレーター

あなたの創造力を引き出す、直感的な配色ジェネレーター

色相環からカラーを選択し、クリックすると配色例を表示します! 24色×16トーンからお好みのカラーに合わせて利用可能!

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

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

ノートPCスタンド
1位

ノートPCスタンド

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

MusiceBee
2位

MusiceBee

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

チョコザップ体験談
3位

チョコザップ体験談

チョコザップが近所にできまして、入会してみました。 それまでジムに通ったことのないジム初心者の中年男性の体験談!

車用スマホホルダー
4位

車用スマホホルダー

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

NAS DS224+
5位

NAS DS224+

SynologyのNAS DS224+を購入。 メモリ増設が可能なため一緒に16GBのメモリも購入して増設してみました。

SOUNDPEATS CC イヤーカフイヤホン
6位

SOUNDPEATS CC イヤーカフイヤホン

SOUNDPEATSのカフタイプのワイヤレスイヤホンのレビューです! はじめてのカフタイプイヤホンは初体験がたくさんあり!

ここひえレビュー
7位

ここひえレビュー

ショップジャパンのパーソナルクーラー「ここひえ」を購入して使った感想と気づいたこと。 風を正面に受けると涼しいです

セサミ5とセサミタッチ
8位

セサミ5とセサミタッチ

CANDY HOUSEのセサミ5とセサミタッチの導入レビューです! 指紋認証とNFCタッチで鍵いらずな生活を手に入れました!

ホワイトボード
9位

ホワイトボード

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

株式会社とは
10位

株式会社とは

株式投資を初めて、株式会社の仕組みと株式と株価と資本金などの関係性が良くわかっておらず、ちょっと調べてみました。

カテゴリ一覧

オススメ商品レビュー

オススメ商品レビュー

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

WEB制作

WEB制作

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

カメラ

カメラ

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

美味しいもの

美味しいもの

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

Amazonプライム動画

Amazonプライム動画

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

旅LOG

旅LOG

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

プロフィール

プロフィール

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

日記

日記

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

thanks

thanks

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

マネーリテラシー

マネーリテラシー

お金や税金、資産形成に関する情報や体験談をブログでお伝え!

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

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

2,750
(税込)