前提・実現したいこと
日間、週間、月間でランキングを作る上で、以下のような配列があります。
※実物ではなくあくまで実物に似せた一例で、実物のデータはそれぞれ10件です。
var_export($newslist); array() { //日刊ランキング 'daily' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', ), //週間ランキング 'weekly' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', ), //月間ランキング 'monthly' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', ),
この配列にそれぞれ以下のデータを挿入しようと考えています。
・順位
・カテゴリ
最終的に以下の形にデータを整形したいと考えています。
var_export($newslist); array() { //日刊ランキング 'daily' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', 'rank' => 1, 'category_tag' => array ( 0 => array ( 'name' => 'カテゴリ1', 'search_key' => 'category1', ), 1 => array ( 'name' => 'カテゴリ2', 'search_key' => 'category2', ), 2 => array ( 'name' => 'カテゴリ3', 'search_key' => 'category3', ), ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', 'rank' => 1, 'category_tag' => array ( 0 => array ( 'name' => 'カテゴリ1', 'search_key' => 'category1', ), 1 => array ( 'name' => 'カテゴリ2', 'search_key' => 'category2', ), 2 => array ( 'name' => 'カテゴリ3', 'search_key' => 'category3', ), ), ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', 'rank' => 1, 'category_tag' => array ( 0 => array ( 'name' => 'カテゴリ1', 'search_key' => 'category1', ), 1 => array ( 'name' => 'カテゴリ2', 'search_key' => 'category2', ), 2 => array ( 'name' => 'カテゴリ3', 'search_key' => 'category3', ), ), ), ・ ・ ・ 以下週間、月間を省略
現在のソースコード
//$newslist : 一番上で記述したデータが格納された変数 if(!empty($newslist)) { foreach($newslist as $newslist_key => $newslist_value){ foreach($newslist_value as $k => $v){ //ランキング順位の情報を追加 $newslist_value[$k]["rank_num"] = $k+1; //カテゴリを取得箇所をidから取得 $categories = $dispCat->getCategoryByStoryID($v["storyid"]); $newslist_value[$k]["category_tag"] = $categories; } } }
結果(内容変わらず)
var_export($newslist); array() { //日刊ランキング 'daily' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', ), //週間ランキング 'weekly' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', ), //月間ランキング 'weekly' => array ( 0 => array ( 'storyid' => '87231', 'title' => 'ランキングテスト1', ), 1 => array ( 'storyid' => '87232', 'title' => 'ランキングテスト2', ), 2 => array ( 'storyid' => '86707', 'title' => 'ランキングテスト3', ),
自分で調べたことや試したこと
・ランキング順位や、カテゴリの取得は既にできています。
使っているツールのバージョンなど補足情報
PHP7.3
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー