北海道や東北など、各地域ごとに女性と男性が交互に6件表示させるということをやりたいです。
Smartyで地域ごとの件数を全件取得できてはいるのですが、6件表示させるというのができないです。
以下にコードを載せますので、わかる方いらっしゃいましたらよろしくお願いします。
php
1function getNewList(){ 2 // エリアを取得 3 $area_list = array(); 4 for($i = 0; $i <= 46; $i++){ 5 $xml_url = API_AREA . '?appid=' . APPID . '&code=' . $i; 6 $xml_data = simplexml_load_file($xml_url); 7 foreach($xml_data as $key=>$value){ 8 $code = (integer)$value->code; 9 $area_list[$code]['name'] = (string)$value->name; 10 $area_list[$code]['parent_area_code'] = (integer)$value->parent_area_code; 11 } 12 } 13 14 // 男性3件 15 //$xml_url_man = API_HAPPY . '?appid=' . APPID . '&limit=' . 3 . '&sex=' . 0; 16 $xml_url_man = API_HAPPY . '?appid=' . APPID .'&sex=' . 0; 17 $xml_data_man = simplexml_load_file($xml_url_man); 18 $arr = json_decode(json_encode($xml_data_man), true); 19 foreach($arr as $key=>$value){ 20 for($i = 0; $i < count($value); $i++){ 21 $date = date('Y年n月j日', strtotime($value[$i]['date'])); 22 $week = date('w', strtotime($value[$i]['date'])); 23 $new_data_m[$i]['date'] = mb_substr($date, 5, 6, 'utf-8'); 24 $new_data_m[$i]['week'] = $GLOBALS['WEEK'][$week]; 25 $new_data_m[$i]['sex'] = (integer)$value[$i]['sex']; 26 27 $code = $value[$i]['code']; 28 if(array_key_exists($value[$i]['code'], $area_list)){ 29 $new_data_m[$i]['area'] = $area_list[$code]['name']; 30 $new_data_m[$i]['parent_area_code'] = $area_list[$code]['parent_area_code']; 31 } 32 } 33 } 34 35 // 女性3件 36 $xml_url_woman = API_HAPPY . '?appid=' . APPID . '&sex=' . 1; 37 $xml_data_woman = simplexml_load_file($xml_url_woman); 38 $arr = json_decode(json_encode($xml_data_woman), true); 39 40 foreach($arr as $key=>$value){ 41 for($i = 0; $i < count($value); $i++){ 42 $date = date('Y年n月j日', strtotime($value[$i]['date'])); 43 $week = date('w', strtotime($value[$i]['date'])); 44 $new_data_w[$i]['date'] = mb_substr($date, 5, 6, 'utf-8'); 45 $new_data_w[$i]['week'] = $GLOBALS['WEEK'][$week]; 46 $new_data_w[$i]['sex'] = (integer)$value[$i]['sex']; 47 $code = $value[$i]['code']; 48 if(array_key_exists($value[$i]['code'], $area_list)){ 49 $new_data_w[$i]['area'] = $area_list[$code]['name']; 50 $new_data_w[$i]['parent_area_code'] = $area_list[$code]['parent_area_code']; 51 } 52 } 53 } 54 return array($new_data_w, $new_data_m); 55 }
php
1function executeIndex () { 2 $this->new_list = $this->getNewList(); 3 4 return $this->render('index'); 5}
html
1 <ul class="report_list"> 2 {foreach from=$new_list|smarty:nodefaults item='array'} 3 {foreach from=$array|smarty:nodefaults key=key item='data'} 4 {if $data.parent_area_code == 10001 || $data.parent_area_code == 10005 } 5 <li {if $data.sex == 1} class="woman" {else} class="man" {/if}> 6 {$data.date}{$data.week} {$data.area}会場 7 <h3>{if $data.sex == 1}女性{else}男性{/if}</h3> 8 <p>本文</p> 9 <a href="/happy/#■■ID■■">続きを見る</a> 10 </li> 11 {/if} 12 {/foreach} 13 {/foreach} 14 </ul> 15
PHPでは外部ファイルをAPIとして読み込んで処理をしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/06 01:28 編集
2017/06/06 02:17
2017/06/12 02:01