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

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

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

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

Q&A

解決済

2回答

2113閲覧

jsonで特定の項目の値のみ取得し、その項目の値のみを取得したいです。

Mason

総合スコア14

PHP

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

0グッド

0クリップ

投稿2021/10/26 16:29

前提・実現したいこと

初歩的な質問ですいませんがよろしくお願いいたします。
jsonで特定の項目の値のみ取得し、その項目の値のみを返す関数を作りたいです。

該当のソースコード

php

1<?php 2function jsonSimple($json) 3{ 4 $arr = json_decode($json); 5 foreach ($arr as $value){ 6 var_dump($value); 7 } 8} 9 10$json = '{"id":1,"name":"Mason","external_id":123,"created_date":"2021-01-10"}'; 11echo jsonSimple($json); 12?> 13 14//結果 15int(1) 16string(5) "Mason" 17int(123) 18string(10) "2021-01-10"

試したこと

下記のようなことを試してみました。
しかし、Trying to access array offset on value of type intエラーと出ます。
int型にアクセスしようとしていると怒られていると思うのですが、どこのことを指しているのかが理解できていません。
よろしくお願いいたします。

var_dump($value["name"]);

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

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

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

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

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

guest

回答2

0

ベストアンサー

jsonで特定の項目の値のみ取得し、その項目の値のみを返す関数を作りたい

そういうことなら、その関数のパラメータには「項目名」も必要でしょう。

PHP

1function jsonSimple($json, $name) 2{ 3 $arr = json_decode($json, true); 4 return $arr[$name]; 5} 6 7$json = '{"id":1,"name":"Mason","external_id":123,"created_date":"2021-01-10"}'; 8echo jsonSimple($json, "name");

しかし見ての通り関数にするまでもなく、むしろムダです。
ひとたびデコードしたら、あとはシンプルにkei344さんの回答のようにデータを参照できるわけです。それがJSONです。

投稿2021/10/26 17:16

itagagaki

総合スコア8402

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

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

Mason

2021/10/26 17:38 編集

なるほど、引数にtrue入れると連想配列型式になるので、$arr[$name];←のように指定できるのですね。 関数のパラメータに項目名を持たせることで、その値以外は取得できないといことですね。 ありがとうございました!
guest

0

PHP

1 $arr = json_decode($json); 2 var_dump($arr->name); 3 /* 4 foreach ($arr as $value){ 5 var_dump($value); 6 } 7 */ 8```or 9```PHP 10 $arr = json_decode($json,true); 11 var_dump($arr["name"]); 12 /* 13 foreach ($arr as $value){ 14 var_dump($value); 15 } 16 */

【PHP JSONを連想配列にする(json_decode) | ITSakura】
https://itsakura.com/php-json-decode

投稿2021/10/26 17:01

kei344

総合スコア69458

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問