下記の配列の第二下層「list」の部分の表示が上手く行かなくって困ってしまっています。
(長くて済みません....><;)
$sheet => array(1) {
[0]=>
array(6) {
["id"]=> int(1) ["staff"]=> string(13) "山田 花子" ["date"]=> string(10) "2016-04-13" ["worktime"]=> float(3) ["overtime"]=> int(0) ["list"]=> array(6) { ["project"]=> array(2) { [0]=> string(24) "香春ギャラリーCMS" [1]=> string(24) "香春ギャラリーCMS" } ["product"]=> array(2) { [0]=> string(12) "お打合せ" [1]=> string(9) "御茶" } ["num"]=> array(2) { [0]=> int(0) [1]=> int(2) } ["per"]=> array(2) { [0]=> int(0) [1]=> int(450) } ["start"]=> array(2) { [0]=> string(4) "9:00" [1]=> string(0) "" } ["end"]=> array(2) { [0]=> string(5) "12:00" [1]=> string(0) "" } } } }
これを 理想的には下記のように表示したいのです
[日付]=>2016-04-13 [スタッフ]=>山田 花子 [就労時間]=>3 [残業]=>0
[件名]=>香春ギャラリーCMS [作業内容/品名]=>お打合せ [数量]=>[単価]=> [開始]=>9:00 [終了]=>12:00
[件名]=>香春ギャラリーCMS [作業内容/品名]=>御茶[数量]=>2[単価]=>450 [開始]=> [終了]=>
Smartyへの代入
PHP
1$smarty -> assign( 'sheets' , $sheet , true);
tamplate
HTML
1-{foreach from = $sheets item = sheet}- 2 3 [日付]=>-{$sheet.date}- [スタッフ]=>-{$sheet.staff}- [就労時間]=>-{$sheet.worktime}- [残業]=>-{$sheet.onertime}-<br /> 4 5 -{foreach from = $sheet.list item = list}- 6 [案件名]=>-{$list.project}- [作業内容/品名]=>-{$list.product}- [数量]=>-{$list.num}- [単価]=>-{$list.per}- [開始]=>-{$list.start}- [終了]=>-{$list.end}- 7 -{/foreach}- 8-{/foreach}- 9
「あまり関係ないと思いますが デリミタはカスタマイズしてあります...」
結果は下記の画像のように["list"]内の配列がUndefined indexになってしまいます(ノω・、)゚
ネストしたforeachの中でdumpしてみたところ
HTML
1 -{foreach from = $sheets item = sheet}- 2 [日付]=>-{$sheet.date}- [スタッフ]=>-{$sheet.staff}- [就労時間]=>-{$sheet.worktime}- [残業]=>-{$sheet.overtime}-<br /> 3 -{foreach from = $sheet.list item = list}- 4 **-{$list|@var_dump}-** 5 -{/foreach}- 6 -{/foreach}-
色々いじってこんな事してみたら
HTML
1 -{foreach from = $sheets item = sheet}- 2 [日付]=>-{$sheet.date}- [スタッフ]=>-{$sheet.staff}- [就労時間]=>-{$sheet.worktime}- [残業]=>-{$sheet.overtime}-<br /> 3 -{foreach from = $sheet.list item = list}- 4 **-{$list.0}-** 5 -{/foreach}- 6 -{/foreach}-
「$list.0」に一行全部入っちゃってる Σ(=゚ω゚=;)
配列の作り方がいけないのか foreachのネストの仕方がいけないのか
一晩中困り続けてへとへとになってしまいました.........。
どうか どなたか ご指南をお願いいたします...m(_ _)m
----------------追記です
配列の形態を下記の形に修正しました
array(1) {
[0]=>
array(6) {
["id"]=>
int(1)
["staff"]=>
string(13) "山田 花子"
["date"]=>
string(10) "2016-04-13"
["worktime"]=>
float(3)
["overtime"]=>
float(0)
["list"]=>
array(2) {
[0]=>
array(6) {
["project"]=>
array(1) {
[0]=>
string(24) "香春ギャラリーCMS"
}
["product"]=> array(1) { [0]=> string(12) "お打合せ" } ["num"]=> array(1) { [0]=> int(0) } ["per"]=> array(1) { [0]=> int(0) } ["start"]=> array(1) { [0]=> string(4) "9:00" } ["end"]=> array(1) { [0]=> string(5) "12:00" } } [1]=> array(6) { ["project"]=> array(1) { [0]=> string(24) "香春ギャラリーCMS" } ["product"]=> array(1) { [0]=> string(9) "御茶代" } ["num"]=> array(1) { [0]=> int(2) } ["per"]=> array(1) { [0]=> int(140) } ["start"]=> array(1) { [0]=> string(0) "" } ["end"]=> array(1) { [0]=> string(0) "" } } } }
}
前回のエラー「Undefined index」は解消されましたが
今度は 「Array to string conversion in」と返されました。
入れ子の foreachが回ってないようです..
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/04/13 01:04
退会済みユーザー
2016/04/13 03:55
退会済みユーザー
2016/04/13 03:57
退会済みユーザー
2016/04/13 05:16