質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1887閲覧

Notice: Undefined offset エラーの解決策

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/10/30 06:10

さっそくですが、
以下のエラー解決策がまだ分からず、
アドバイス頂ければ幸いです。

どうぞよろしくお願い致します。

calendar.php

php

1function get_public_holidays(){ 2$path = "../../syukujitsu.csv"; 3$csv = new SplFileObject($path); 4$csv->setFlags(SplFileObject::READ_CSV); 5$holidays = []; 6foreach ($csv as $key => $line){ 7$holidays[$line[0]] = $line[1];//この行にエラー 8return $holidays; 9} 10//var_dump($holidays); 11//array(30) { ["国民の祝日・休日月日"]=> string(30) "国民の祝日・休日名称" ["2021/4/29"]=> string(12) "昭和の日" ["2021/5/3"]=> string(15) "憲法記念日" ["2021/5/4"]=> string(15) "みどりの日" ["2021/5/5"]=> string(15) "こどもの日" ["2021/7/22"]=> string(9) "海の日" ["2021/7/23"]=> string(18) "スポーツの日" ["2021/8/8"]=> string(9) "山の日" ["2021/8/9"]=> string(6) "休日" ["2021/9/20"]=> string(12) "敬老の日" ["2021/9/23"]=> string(12) "秋分の日" ["2021/11/3"]=> string(12) "文化の日" ["2021/11/23"]=> string(18) "勤労感謝の日" ["2022/1/1"]=> string(6) "元日" ["2022/1/10"]=> string(12) "成人の日" ["2022/2/11"]=> string(18) "建国記念の日" ["2022/2/23"]=> string(15) "天皇誕生日" ["2022/3/21"]=> string(12) "春分の日" ["2022/4/29"]=> string(12) "昭和の日" ["2022/5/3"]=> string(15) "憲法記念日" ["2022/5/4"]=> string(15) "みどりの日" ["2022/5/5"]=> string(15) "こどもの日" ["2022/7/18"]=> string(9) "海の日" ["2022/8/11"]=> string(9) "山の日" ["2022/9/19"]=> string(12) "敬老の日" ["2022/9/23"]=> string(12) "秋分の日" ["2022/10/10"]=> string(18) "スポーツの日" ["2022/11/3"]=> string(12) "文化の日" ["2022/11/23"]=> string(18) "勤労感謝の日" [""]=> NULL } 12}

php

1Notice: Undefined offset: 1

↓syukujitsu.csv
国民の祝日・休日月日,国民の祝日・休日名称
2021/4/29,昭和の日
2021/5/3,憲法記念日
2021/5/4,みどりの日
2021/5/5,こどもの日
2021/7/22,海の日
2021/7/23,スポーツの日
2021/8/8,山の日
2021/8/9,休日
2021/9/20,敬老の日
2021/9/23,秋分の日
2021/11/3,文化の日
2021/11/23,勤労感謝の日
2022/1/1,元日
2022/1/10,成人の日
2022/2/11,建国記念の日
2022/2/23,天皇誕生日
2022/3/21,春分の日
2022/4/29,昭和の日
2022/5/3,憲法記念日
2022/5/4,みどりの日
2022/5/5,こどもの日
2022/7/18,海の日
2022/8/11,山の日
2022/9/19,敬老の日
2022/9/23,秋分の日
2022/10/10,スポーツの日
2022/11/3,文化の日
2022/11/23,勤労感謝の日

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どうやらファイルの終端(EOF)を空文字列("")として読み取っている様なので、それを抑制するフラグをセットします。

SplFileObject クラス 定義済み定数

php

1$csv = new SplFileObject($path); 2$csv->setFlags( 3 SplFileObject::READ_CSV | 4 SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY 5); 6 7$holidanys = []; 8foreach ($csv as $line) { 9 $holidays[$line[0]] = $line[1]; 10}

$key は使用していないので foreach ($csv as $line) ... としています

投稿2021/10/30 06:43

melian

総合スコア20655

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/30 07:53

教えて頂きありがとうございます。 おかげさまでエラーが解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問