PHP 二维关联数组的两个不同的关联数组如何foreach只是两者之一
PHP bidimensional associative array of two different associative arrays how to foreach just one of the two
我遇到这种情况是因为我有两个关联数组要传递给视图
然后在视图中我必须为第一个数组 foreach 并得到一个列表
然后下一个 foreach 获取第二个 table 的详细信息
数组是以这种方式创建的,与 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
)
)
)
如您所见,两个完全不同的关联数组一个接一个地链接到新的关联数组 $newArray 中,在下一步中我将其传递给视图 (codeigniter)
现在在视图中,我想在 html table 中出于一个目的 foreach 第一个 'ticketResult',就好像它是一个“单个”关联数组
然后在视图的另一部分中,我想 foreach 另一个关联数组 'ticketDept' 以将其放入列表中
我想知道应该如何完成我想做的事情...
这种由两个完全不同的关联数组组成的二维关联数组应该如何使用
我也乐于接受更好的方法来实现我的需求,最初是将两个不同的数组传递给视图,所以如果您认为可以用不同的方式解决这个问题..谢谢您的任何建议
谢谢指点
为了清楚起见,这是控制器中的调用
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; ?>
但是我会在控制器中更明确一点,并做一些类似的事情:
$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 中,我有两个 associative 数组,由两种不同的 Models[=24= 的两种方法返回]
正如问题中所写,两个数组链接在结果数组 $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”View 中,这两个数组可以通过这种方式单独访问
<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() ?>
我遇到这种情况是因为我有两个关联数组要传递给视图
然后在视图中我必须为第一个数组 foreach 并得到一个列表
然后下一个 foreach 获取第二个 table 的详细信息
数组是以这种方式创建的,与 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
)
)
)
如您所见,两个完全不同的关联数组一个接一个地链接到新的关联数组 $newArray 中,在下一步中我将其传递给视图 (codeigniter)
现在在视图中,我想在 html table 中出于一个目的 foreach 第一个 'ticketResult',就好像它是一个“单个”关联数组
然后在视图的另一部分中,我想 foreach 另一个关联数组 'ticketDept' 以将其放入列表中
我想知道应该如何完成我想做的事情...
这种由两个完全不同的关联数组组成的二维关联数组应该如何使用
我也乐于接受更好的方法来实现我的需求,最初是将两个不同的数组传递给视图,所以如果您认为可以用不同的方式解决这个问题..谢谢您的任何建议
谢谢指点
为了清楚起见,这是控制器中的调用
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; ?>
但是我会在控制器中更明确一点,并做一些类似的事情:
$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 中,我有两个 associative 数组,由两种不同的 Models[=24= 的两种方法返回]
正如问题中所写,两个数组链接在结果数组 $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”View 中,这两个数组可以通过这种方式单独访问
<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() ?>