[英]PHP bidimensional associative array of two different associative arrays how to foreach just one of the two
我处于这种情况是因为我有两个关联的 arrays 要传递给视图
然后在视图中我必须为第一个数组 foreach 并获取一个列表
和 next foreach 第二个并获得详细信息表
数组是以这种方式创建的,这与 array_merge 和其他 array_* 函数略有不同
我只是像这样在我的代码中重复了两次分配
$newArray = $ticketResult;
$newArray = $deptResult;
它可以工作并且 print_r($newArray); 显示了这一点(在片段之后):
Array
(
[ticketResult] => Array
(
[0] => Array
(
[id] => 3943
[t_name] => customerOne
[date] => 1508236987
[d_name] => In progress
)
[1] => Array
(
[id] => 4139
[t_name] => AnotherName
[date] => 1522134694
[d_name] => In progress
)
[2] => Array
(
[id] => 4367
[t_name] => HisName
[date] => 1535118892
[d_name] => On hold
)
[3] => Array
(
[id] => 4395
[t_name] => Hername
[date] => 1536914668
[d_name] => Shipping
)
)
[deptResult] => Array
(
[0] => Array
(
[id] => 0
[name] => Arrived
)
[1] => Array
(
[id] => 1
[name] => In progress
)
[2] => Array
(
[id] => 2
[name] => On hold
)
[3] => Array
(
[id] => 4
[name] => Closed
)
)
)
如您所见,两个完全不同的关联 arrays 一个接一个地链接到新的关联数组 $newArray 中,在下一步我传递给视图(codeigniter)
现在在视图中,我想在 html 表中为一个目的 foreach 第一个“ticketResult”,就好像它是一个“单个”关联数组
然后在视图的另一部分中,我想将另一个关联数组“ticketDept”放在一个列表中
我想知道它应该如何完成我想做的事情......
应该如何使用这种由两个完全不同的关联 arrays 组成的二维关联数组
我也愿意接受更好的方法来满足我的需求,最初是将两个不同的 arrays 传递给视图,所以如果你认为这个问题可以用不同的方式解决......谢谢你的任何建议
谢谢你的提示
为了清楚起见,这是 controller 中的调用
return view("Ticketpage/showtickets", ['dataarrays' => $newArray]);
// Controller
$data = $ticketResult;
$data = $deptResult;
// view use the first array
<?php foreach($ticketResult as $result): ?>
// Your code here
<?php endforeach; ?>
// view use the second array
<?php foreach($deptResult as $result): ?>
// Your code here
<?php endforeach; ?>
但是,我会在 controller 中更明确一点,并执行以下操作:
$data['ticketResult'] = $ticketResult['ticketResult'];
$data['deptResult'] = $deptResult['deptResult'];
// Then load the view
return view('foo/bar', $data);
现在假设您想在无序列表中显示该票证结果的所有名称。 在您看来,您会这样做:
<ul>
<?php foreach($deptResult as $result): ?>
<li><?php echo $result['t_name'] ?></li>
<?php endforeach; ?>
</ul>
在 Marco 的双重暗示下,我终于找到了要应用的正确技术
在Controller我有两个关联的 arrays 由两个不同模型的两种方法返回
如问题中所述,两个 arrays 链接在结果数组 $data 中
public function showTickets($id)
{
$ticketModel = new TicketModel();
$deptModel = new DeptModel();
$ticketRecords = $ticketModel->getTicketsByDept($id);
$deptRecords = $deptModel->getAvailableDepts();
$data['ticketResult'] = $ticketRecords;
$data['deptResult'] = $deptRecords;
return view("Chart/showtickets", $data);
}
在“showtickets”视图中,这两个数组可以通过这种方式单独访问
<h1>Chart</h1>
<p>
<?php foreach ($deptRecord as $dKey): ?>
<?= $dKey['id'] ?> , <?= $dKey['name'] ?> <br>
<?php endforeach; ?>
</p>
<table style="width:100%">
<tr>
<th>Ticket ID</th>
<th>Cliente</th>
<th>Data Creazione</th>
<th>Dipartimento</th>
</tr>
<?php foreach ($ticketRecords as $tKey): ?>
<tr>
<td><?= $tKey['id'] ?></td>
<td><?= $tKey['t_name'] ?></td>
<td><?= date("d-m-Y", $tKey['date']) ?></td>
<td><?= $tKey['d_name'] ?></td>
</tr>
<?php endforeach; ?>
</table>
<?= $this->endSection() ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.