【103日目】PHPの配列内検索がうまく動かせるようになった!
Posted: Last Update:
ページから各カテゴリーに戻るリンクを作ろうと昨日(一昨日?)から頑張っていますが、PHPが書けません…。さぁ、どうしたものか…。
一昨日までの作業振り返り
まず、ページ番号ごとにカテゴリー分けをしているPHPがあります。下記はサンプル、一部抜粋しています。このページ番号(20201012)から、「platform」などのカテゴリーを呼び出そうとしていますがうまくいっていません。
"platform" => array("20200926","20200927","20201004","20201012"),
"siteparts" => array("20201017","20201027","20201102","20201103","20201109","20201115","20201117"),
"searchengine" => array("20201030","20201031","20201102","20201103"),
今までに書けているPHPがこのような感じです。これではなにも引っかかってきません!すべて「bool(false)」(存在しません)で返ってきています!
$value = $filenum;
require("$mypath/top/category.txt");
foreach($scategory as $i){
$keycats = array_search($value, array_column($scategoryarticle, $i));
var_dump($keycats);
}
?>
とりあえず検索してみようと思ったら!
とりあえずいろいろと検索して見たいと思います。今日は検索だけで終わって何も報告できないのではないかと言う気がしています…。
さて、何を検索すればいいんだ、と自分のPHPを眺めていて気付きました!そもそも検索の仕方を返ればいいじゃん。配列の[]を使えば、カテゴリーごとに確認していけます。というわけで、PHPを書き換えました。
$value = $filenum;
require("$mypath/top/category.txt");
foreach($scategory as $thecatebory){
$keycats = array_search($value, $scategoryarticle[$thecatebory);
var_dump($keycats);
}
たとえば「20201117」を$filenumに代入すると「int(6) bool(false) bool(false) bool(false) bool(false) int(2) bool(false)」と返ってくるようになりました!
配列キーをカテゴリー名に変換していく
無事、配列(カテゴリー)にページが入っているかを確認できるようになりました!今度はここから配列名(カテゴリー)をひっぱってきたいと思います。欲しいのは「platform」とかの部分です。
配列内検索の構文は「array_search」から「in_array」に変えました。配列内にページが存在する場合には「true」が返ってきます。「true」の場合に、カテゴリーを書き出してみます。
$value = $filenum;
require("$mypath/top/category.txt");
foreach($scategory as $thecatebory){
$keycats = in_array($value, $scategoryarticle[$thecatebory]);
if ($keycats == "true"){
echo $thecatebory;
}
}
無事に「siteparts」と「CSS」というカテゴリーが出力できました!ゴールが近くなってきた!
今日はここまで
ここで時間が来てしまいました。今日は少し進みましたね!無事にカテゴリーが引っ張って来れたので、明日は英語のカテゴリー名を日本語に変えるところからはじめたいと思います。それが完了したら、リンクを作ってページに埋め込んで完成です!
では、また明日!
おまけのロードマップ
サイト作成がどのくらい進んでいるかロードマップで進捗を確認すると、ここまで進んでいます。
- 準備 - サイトの全体像を決める
- 使用するプログラミング言語を決めて環境を整える
- サイトの基本構造を作って公開する
- 収益化に最適なサイトにアップグレードする
- GoogleアドセンスとAmazonアソシエイトの申し込みをする ←完了!
- ローカルで簡単に入力ができるようにフォームを作る
- フォローアップ - より収益化に向いたサイト構造に変更する
