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

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

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

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

Q&A

解決済

1回答

2163閲覧

PHPexcelを利用しての配列のセットの仕方について

kumakumatan

総合スコア213

PHP

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

0グッド

0クリップ

投稿2018/01/23 06:13

■$item['test_list']データ中身

array(3) { [0]=> array(3) { ["title"]=> string(9) "テスト" [0]=> array(7) { ["name"]=> string(0) "" ["test_name"]=> string(0) "" } [1]=> array(7) { ["name"]=> string(0) "" ["test_name"]=> string(3) "か" } } [1]=> array(4) { ["title"]=> string(12) "テストB" [0]=> array(7) { ["name"]=> string(3) "あ" ["test_name"]=> string(0) "" } [1]=> array(7) { ["name"]=> string(3) "い" ["test_name"]=> string(0) "" } [2]=> array(7) { ["name"]=> string(0) "" ["test_name"]=> string(3) "う" } } [2]=> array(2) { ["title"]=> string(12) "テストC" [0]=> array(7) { ["name"]=> string(0) "" ["test_name"]=> string(0) "" } } }

このように格納されている「$item['test_list']」データをPHPExcelを利用して
Excelに出力させたく思います。

php

1$rowOff = 1; //縦初期値セル 2$row = 0; //行 3$cel = 0; //列 4 5 6for ($i = 0 ; $i < count($item['test_list']); $i++) { 7 $value = $item['test_list'][$i]['title']; 8 //タイトル出力 9 if($i == 0){ 10 $excel->setCellValueExplicitByColumnAndRow(($cel+=1), $row + $rowOff, $value,PHPExcel_Cell_DataType::TYPE_STRING); 11 }else{ 12 $excel->setCellValueExplicitByColumnAndRow(($cel+=5), $row + $rowOff, $value,PHPExcel_Cell_DataType::TYPE_STRING); 13 } 14 //タイトル内の「name」をセルに出力する 15 foreach($item['test_list'][$i] as $k => $test){ 16 $value2 = $test['name']; 17 //名前出力 18 if($i == 0){ 19 $excel->setCellValueExplicitByColumnAndRow(($cel+=2), $row + $rowOff, $value2,PHPExcel_Cell_DataType::TYPE_STRING); 20 }else{ 21 $excel->setCellValueExplicitByColumnAndRow(($cel+=5), $row + $rowOff, $value2,PHPExcel_Cell_DataType::TYPE_STRING); 22 } 23 } 24}

["title"]部分は意図したように出力できるのですが、["name"]の部分が思い通りに出力できずに
悩んでいます。「//タイトル内の「name」をセルに出力する」の部分にて、
「$item['test_list'][$i]」の中のさらに「0」「1」「2」番目の["name"]を取り出し、
セルに「['name']」の値を出力したく思います。空白の場合は空白のデータを出力させる想定です。

どのようにしたら、良いかご教授宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

$item['test_list'][$i]

に入っているキーは、title,0,1,...
なのでtitle が$kに入ってくるときを考慮してないからだと思います。

データ構造を見直した方がわかりやすくなりますよ。

投稿2018/01/23 13:42

kero1209

総合スコア431

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

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

kumakumatan

2018/01/24 05:40

ありがとうございます。 for ($i = 0 ; $i < count($item['test_list']); $i++) { for ($j = 0 ; $j < 10; $j++) { $item['test_list'][$i][$j]['name'] } } で値を取得でき解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問