我正在使用Laravel 5.7开发项目
我有两个数组
我要查看表的此数组
array(['branch','report','product','cost']);
array(
[
'branch' =>
[
'branch.add',
'branch.delete,
]
'report' =>
[
'report.create',
'report.list,
]
'product' =>
[
'product.add',
'product.sell'
]
'cost' =>
[
'cost.add',
'cost.list
]
]
)
我希望桌子看起来像这样
<table>
<thead>
<th>Branch</th>
<th>Report</th>
<th>Product</th>
<th>Cost</th>
</thead>
<tbody>
<tr>
<td>branch.add</td>
<td>report.create</td>
<td>product.add</td>
<td>cost.add</td>
</tr>
<tr>
<td>branch.delete</td>
<td>report.list</td>
<td>product.list</td>
<td>cost.list</td>
</tr>
</tbody>
</table>
我尝试了很多,但是无法编写正确的foreach循环。
第一次尝试
<table>
<thead>
<tr>
@foreach($delegateGroup as $group)
<th>{{$group}}</th>
@endforeach
</tr>
</thead>
<tbody>
@foreach($delegateType as $delegate)
@foreach($delegate as $v)
<tr>
<td>{{$v}}</td>
</tr>
@endforeach
@endforeach
</tbody>
</table>
第一个数组中的第二个数组正确无误,但其他数组错误
我在做什么错
答案 0 :(得分:0)
可以尝试一下吗。 希望它能起作用
camera.position.x = camera.position.x + 100;
答案 1 :(得分:0)
在您发表评论后,我意识到我没有正确阅读您的问题-致歉。
我认为一个简单的解决方案是为用户array_column
https://www.php.net/manual/en/function.array-column.php
然后您可以说:
$tableheadings = array(['branch','report','product','cost'])[0];
$tableData = array(
[
'branch' =>['branch.add','branch.delete'],
'report' =>['report.create','report.list'],
'product' =>['product.add','product.sell'],
'cost' =>['cost.add','cost.list']
]
);
$table = '<thead>' .
implode('',array_map(function($th){return '<th>' . $th . '</th>';},$tableheadings))
. '</thead>';
for($i = 0;$i < sizeof($tableData[0]); $i++) {
$row = array_map(function($td){return '<td>' . $td . '</td>';},array_column($tableData[0],$i));
if(sizeof($row) == 0) continue;
$table .= '<tr>' .implode('',$row) . '</tr>';
}
echo '<table>' . $table . '</table>';
我已经在phpfiddle上进行了测试,它可以提供您想要的结果,如果您可以以更好的格式获取数据,则可以使其更简单(我不确定从哪里获取数据)>
答案 2 :(得分:0)
我做到了
感谢@ jameson2012的想法
找到最长的数组
$rowCount = 0;
array_walk($delegateType, function ($items) use (&$rowCount) {
$count = count($items);
if ($count > $rowCount)
$rowCount = $count;
});
$ delegateType回显索引后
以及每个数组的第一个值echo
<table>
<thead>
<tr>
@foreach(array_keys($delegateType) as $group)
<th>
@if(isset($group))
$group
@endif
</th>
@endforeach
</tr>
</thead>
<tbody>
@for ($i = 0; $i < $rowCount; $i++)
<tr>
@foreach($delegateType as $group => $values)
<td>
@if(isset($values[$i]))
{{$values[$i]}}
@endif
</td>
@endforeach
</tr>
@endfor
</tbody>