数组php上的foreach数组
Posted
技术标签:
【中文标题】数组php上的foreach数组【英文标题】:Foreach array on array php 【发布时间】:2018-09-11 07:09:05 【问题描述】:我正在尝试foreach
我的数组但无法正常工作
这是我的控制器
$start = (new DateTime("2016-11-01"))->modify('first day of this month');
$end = (new DateTime("2017-02-01"))->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
$result = array();
foreach ($period as $dt)
$data_month = array(
'month' => $dt->format("n"),
'year' => $dt->format("Y")
);
array_push($result, $data_month);
这是我的刀
@foreach($result as $row => $innerArray)
@foreach($innerArray as $innerRow => $value)
<td>$value->month</td>
<td>$value->year</td>
@endforeach
@endforeach
结果:
试图获取非对象的属性
但如果我这样尝试,只有数组 ('month') 上的第一个值在循环
@foreach($result as $row => $innerArray)
@foreach($innerArray as $innerRow => $value)
<td>$value</td>
@endforeach
@endforeach
结果:
仅循环月份
【问题讨论】:
不工作不是清理东西。让我们知道您到底面临什么错误? 我建议在使用日期时间时研究 Carbon。更干净更有趣。 你应该了解 php 对象和 PHp 数组的区别,Trying to get property of non-object
通常发生在你访问具有对象样式的数组时
【参考方案1】:
试试这个:
@foreach($result as $value)
<td> $value['month'] </td>
<td> $value['year'] </td>
@endforeach
因为数组的结构如下:
Array
(
[0] => Array
(
[month] => 11
[year] => 2016
)
[1] => Array
(
[month] => 12
[year] => 2016
)
[2] => Array
(
[month] => 1
[year] => 2017
)
[3] => Array
(
[month] => 2
[year] => 2017
)
)
【讨论】:
【参考方案2】:控制器逻辑
$start = (new DateTime("2016-11-01"))->modify('first day of this month');
$end = (new DateTime("2017-02-01"))->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
$result = array();
foreach ($period as $dt)
$result[] = array(
'month' => $dt->format("n"),
'year' => $dt->format("Y")
);
刀片文件
@foreach($result as $row => $data)
<td>$data['month']</td>
<td>$data['year']</td>
@endforeach
【讨论】:
【参考方案3】:试试这个
@foreach($result as $result1)
$result1['month']
@endforeach
【讨论】:
以上是关于数组php上的foreach数组的主要内容,如果未能解决你的问题,请参考以下文章