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

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

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

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1511閲覧

【PHP】多次元配列で特定の部分を抽出

satokibi

総合スコア5

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

2クリップ

投稿2020/07/18 11:23

前提・実現したいこと

APIで下記配列の"name"のみの情報を取得したいと思っています。
foreachなどで連続で取得したいのですがうまくいきません。
一つだけだとうまく取得できます。
最終的にHTMLで
例えば
ジャンル A B

ジャンル C D
のように表示したいと思っています。

PHP

1 [0]=> 2 object(SimpleXMLElement)#13 (1) { 3 ["item"]=> 4 array(9) { 5 [0]=> 6 object(SimpleXMLElement)#77 (2) { 7 ["id"]=> 8 string(4) "6533" 9 ["name"]=> 10 string(18) "A" 11 } 12 [1]=> 13 object(SimpleXMLElement)#78 (2) { 14 ["id"]=> 15 string(4) "6548" 16 ["name"]=> 17 string(12) "B" 18 } 19  } 20 [1]=> 21 object(SimpleXMLElement)#27 (1) { 22 ["item"]=> 23 array(9) { 24 [0]=> 25 object(SimpleXMLElement)#85 (2) { 26 ["id"]=> 27 string(4) "6533" 28 ["name"]=> 29 string(18) "C" 30 } 31 [1]=> 32 object(SimpleXMLElement)#84 (2) { 33 ["id"]=> 34 string(4) "6548" 35 ["name"]=> 36 string(12) "D" 37 } 38 } 39

単体で取得する場合は下記で

PHP

1$genre= $item-> iteminfo -> genre; 2$genre2 = count($genre->item); 3$genre3 = []; 4for($i = 0 ; $i < $genre2 ;$i++){ 5for($i=0;$i <= $genre2 -1 ; $i++){ 6 $genre3[] = (string)$genre->item[$i]->name; 7 }

で取得できますが
複数の場合

PHP

1 $genre[$i]= $item-> iteminfo -> genre; 2 $genre2[$i] = count($genre[$i]->item); 3 for($i = 0 ; $i < $genre2[$i] ;$i++){ 4 for($i=0;$i <= $genre2[$i] -1 ; $i++){ 5 $genre3[] = (string)$genre[$i]->item[$i]->name; 6 }}

にように記載して

PHP

1Notice: Undefined offset: 2 in F:\programing\xampp\htdocs\test\test10_3.php on line 27 2 34無限ループのようになり取得できないです。

PHP

1◆ジャンル:$genre3[0]$genre3[1]

上記のようにして表示させる予定です。

大変恐れ入りますがご教示頂けると幸いです

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

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

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

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

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

guest

回答1

0

ベストアンサー

php の変数スコープを学習してください。

投稿2020/07/18 22:02

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

satokibi

2020/07/18 22:14

ご回答ありがとうございます。 確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問