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

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

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

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

PHP

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

Q&A

1回答

947閲覧

phpでjsonの値を取り出したい

otyatya_no_tya

総合スコア10

JSON

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

PHP

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

0グッド

0クリップ

投稿2020/10/12 14:07

編集2020/10/12 14:19

前提・実現したいこと

phpでjsonの値を取り出したい。
chart->datasets[1]->labelsの値を取り出したい。

発生している問題・エラーメッセージ

チャート 12

該当のソースコード

json

1{ 2 "data": { 3 "profile": [{ 4 "name1": "aaaa", 5 "name2": "aaaa" 6 }], 7 "chart": { 8 "name1": "aaaa", 9 "labels": ["aaa", "bbb", "ccc", "ddd", "eee"], 10 "datasets": [{ 11 "labels": "123", 12 "backgroundColor": "RGBA(225, 95, 150, 0.5)", 13 "borderColor": "RGBA(225,95,150, 1)", 14 "borderWidth": 1, 15 "pointBackgroundColor": "RGB(46,106,177)" 16 }, 17 { 18 "labels": "234", 19 "backgroundColor": "RGBA(225, 95, 150, 0.5)", 20 "borderColor": "RGBA(225,95,150, 1)", 21 "borderWidth": 1, 22 "pointBackgroundColor": "RGB(46,106,177)" 23 } 24 ] 25 } 26 } 27 28}

php

1<?php 2 $url = "sample1.json"; 3 if(file_exists($url)) { 4 $json = file_get_contents($url); 5 $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 6 $arr = json_decode($json); 7 ?> 8 <div> 9 <div> 10 <p>チャート</p> 11 <?php 12 foreach($arr->data->chart->datasets as $data) { 13 echo $data->{'labels'}[1]; 14 } 15 $chart = $arr->data->chart; 16 var_dump($chart); 17 } else { 18 echo "data is nothig..."; 19 } 20 ?> 21 </div> 22 23 </div>

補足情報(FW/ツールのバージョンなど)

php7系でxampp環境です

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

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

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

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

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

guest

回答1

0

chart->datasets[1]->labelsの値を取り出したい。

つまり234を取り出したいのですよね?
ループせずに下記で取り出せると思いますが、何か問題ございますか?

php

1<?php 2$json = '{ 3 "data": { 4 "profile": [{ 5 "name1": "aaaa", 6 "name2": "aaaa" 7 }], 8 "chart": { 9 "name1": "aaaa", 10 "labels": ["aaa", "bbb", "ccc", "ddd", "eee"], 11 "datasets": [{ 12 "labels": "123", 13 "backgroundColor": "RGBA(225, 95, 150, 0.5)", 14 "borderColor": "RGBA(225,95,150, 1)", 15 "borderWidth": 1, 16 "pointBackgroundColor": "RGB(46,106,177)" 17 }, 18 { 19 "labels": "234", 20 "backgroundColor": "RGBA(225, 95, 150, 0.5)", 21 "borderColor": "RGBA(225,95,150, 1)", 22 "borderWidth": 1, 23 "pointBackgroundColor": "RGB(46,106,177)" 24 } 25 ] 26 } 27 } 28 29}'; 30 31$result; 32$arr = json_decode($json); 33$result = $arr->data->chart->datasets[1]->{'labels'}; 34var_dump($result); // -> string(3) "234" 35

投稿2020/10/12 17:33

編集2020/10/12 17:35
kurazushi

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問