PHP初心者です。
JQueryを使った簡単なスライドショーで一度に3枚ずつ表示するスライドショーを作成しました。
そこでアクセスする度に同じ画像だと面白くないので、
アクセスする度に画像を切り替えるように設定しようと思いました。
【menu.php】(クラス指定をするためのファイル)
PHP
1<?php 2 3class Menu { 4 protected $name; 5 protected $img; 6 7 public function __construct($name,$img) 8 { 9 $this -> name = $name; 10 $this -> img = $img; 11 } 12 13 public function getName() { 14 return $this -> name; 15 } 16 17 public function getImage() { 18 return $this -> img; 19 } 20 21 22} 23 24
【data.php】(連想配列を格納するためのファイル)
PHP
1$slide1 = new Menu('画像1','common/img/img01.png'); 2$slide2 = new Menu('画像2','common/img/img02.png'); 3$slide3 = new Menu('画像3','common/img/img03.png'); 4
【index.php】
PHP
1<?php 2 shuffle($menus); 3?> 4 <?php foreach($menus as $menu) :?> 5 <div class="swiper-slide scale"> 6 <a title=" <?php echo $menu -> getName() ?>" href="#"> 7 <img src="<?php echo $menu -> getImage() ?>" alt=""> 8 </a> 9 </div> 10 <?php endforeach ?>
まず1番最初に試したのが上記です。
とりあえずshuffle関数を使ってみたという感じです。
次に
PHP
1$menus = array($slide1,$slide2,$slide3); 2$menusKey = array_keys($menus); //キー取り出し 3shuffle($menusKey);//キーを並び替え 4$newMenus = array();//結果を入れる配列 5foreach($menusKey as $key) { //配列並び替え 6 $newMenus[$key] = $menus[$key]; 7 echo $newMenus; //結果Array 8 echo '<br/>'; 9}
と上記のようにキーを取り出し、shuffle関数でキーを並び替えをし、空の配列を用意し、foreach文で配列を並び替えるという処理をしてみましたが、結果はArrayでした。
考えれば考えるほど、ドツボにハマり質問させていただきました。
なんとかスライドショーをシャッフルで表示させる方法はないでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー