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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

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

Q&A

解決済

1回答

1856閲覧

Google SpreadSheet v4のデータをJSON→PHPで取得したい

srecna

総合スコア7

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

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

0グッド

0クリップ

投稿2021/09/19 03:31

編集2021/09/19 03:36

前提・実現したいこと

従来の「ウェブ公開」でのGoogle SpreadSheetのJSONデータの取得方法が廃止となり、下記のサイトを参考にAPIの発行まではできましたが、各データの取得方法がわかりません。
【最新版】Google SpreadSheetのデータをJSONで取得する手順

PHP

1<?php //スプレッドシートIDの指定と必要なJSONデータの取得 2$sheet_id = '〇〇〇'; 3$sheet_name = 'シートの名前'; 4$API = '〇〇〇'; 5$data = "https://sheets.googleapis.com/v4/spreadsheets/$sheet_id/values/$sheet_name?key=$API"; 6 7$json = file_get_contents($data); 8$json_decode = json_decode($json,true); 9print_r($json_decode);

print_rの結果

PHP

1Array 2( 3 [range] => 'シートの名前'!A1:Z1002 4 [majorDimension] => ROWS 5 [values] => Array 6 ( 7 [0] => Array 8 ( 9 [0] => important 10 [1] => date 11 [2] => category 12 [3] => name 13 [4] => title 14 [5] => contents 15 ) 16 [1] => Array 17 ( 18 [0] =>19 [1] => 2021.9.14 20 [2] => ニュース 21 [3] => 名前 22 [4] => 記事タイトル 23 [5] => コンテンツ 24 ) 25 ) 26)

項目を一つ一つ取得して更新内容をwebサイトに表示したいです。
(※importantに〇がついていれば上のピックアップニュースにも掲載する仕様です)
foreachで二重に取得しようとするとWarning: Invalid argument supplied for foreach() のエラーが出てしまいます。

初歩的な質問で恐縮ですが、お知恵を拝借できれば大変ありがたいです。どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。
それぞれの項目を配列にして、forで取得しました。もっときれいな書き方があればご教授いただければうれしいです。

php

1<?php 2$count = count($json_decode['values']) -1; 3//データを配列で取得・格納 4 $important = array(); 5 $date = array(); 6 $category = array(); 7 $name = array(); 8 $title =array(); 9 $contents = array(); 10 11 for($i = 0; $i < $count; $i++){ 12 $important[] = isset($json_decode['values'][$i][0]) ? $json_decode['values'][$i][0] : ''; 13 $date[] = isset($json_decode['values'][$i][1]) ? $json_decode['values'][$i][1] : ''; 14 $category[] = isset($json_decode['values'][$i][2]) ? $json_decode['values'][$i][2] : ''; 15 $name[] =isset($json_decode['values'][$i][3]) ? $json_decode['values'][$i][3] : ''; 16 $title[] = isset($json_decode['values'][$i][4]) ? $json_decode['values'][$i][4] : ''; 17 $contents[] = isset($json_decode['values'][$i][5]) ? $json_decode['values'][$i][5] : ''; 18} 19 20for($j = 1; $j < $count; $j++){ 21 (ここに記述) 22} 23?>

投稿2021/09/19 08:41

srecna

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問