如何在PHP中循环数据 [英] How to loop a data in php
本文介绍了如何在PHP中循环数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想像这样循环我的数据
I want to loop my data Like this
喜欢这样
不喜欢
我的控制器:
function bills($patient_id){
$data['payments'] = $this->model_patient->getpayments($patient_id);
$this->load->view('includes/header');
$this->load->view('billing', $data);
$this->load->view('includes/footer');
}
我的模型://加入我的3个表,我想显示过程该患者支付的费用以及所有已支付的费用。
My Model: // joining my 3 tables, i want to display the procedures made by this patients and all the payments made.
function getpayments($patient_id){
$this->db->select('*');
$this->db->from('treatmentrecord as tr');
$this->db->join('patientprofile as pr','pr.patient_id = tr.patient_id');
$this->db->join('billedrecord as br','br.treatment_id = tr.treatment_id');
$this->db->where('tr.patient_id', $patient_id);
$query = $this->db->get();
return $query->result();
}
我的视图:
<table>
<thead>
<tr>
<td>Procedures</td>
<td>Payments</td>
</tr>
</thead>
<?php foreach ($payments as $payments): ?>
<tbody>
<tr>
<td><?php echo $payments->procedures; ?></td>
<td><?php echo $payments->bill_paid; ?></td>
</tr>
</tbody>
<?php endforeach ?>
</table>
我希望有人可以帮助我。
I hope someone can help me with this.
OP:
Array(
[0] => stdClass对象
(
[treatment_id] => 1
[procedures] => ProcedureName1
[patient_id] => 1
[bill_id] => 3
[bill_paid] => 500
)
OP: Array( [0] => stdClass Object ( [treatment_id] => 1 [procedures] => ProcedureName1 [patient_id] => 1 [bill_id] => 3 [bill_paid] => 500 )
[1] => stdClass Object
(
[treatment_id] => 5
[procedures] => ProcedureName3
[patient_id] => 1
[bill_id] => 4
[bill_paid] => 2323
)
[2] => stdClass Object
(
[treatment_id] => 1
[procedures] => ProcedureName1
[patient_id] => 1
[bill_id] => 5
[bill_paid] => 2555
)
[3] => stdClass Object
(
[treatment_id] => 6
[procedures] => ProcedureName2
[patient_id] => 1
[bill_id] => 6
[bill_paid] => 2555
)
[4] => stdClass Object
(
[treatment_id] => 1
[procedures] => ProcedureName1
[patient_id] => 1
[bill_id] => 7
[bill_paid] => 23232
)
[5] => stdClass Object
(
[treatment_id] => 5
[procedures] => ProcedureName3
[patient_id] => 1
[bill_id] => 8
[bill_paid] => 2323
)
)
推荐答案
- 首先对
$ payments
进行排序程序
如下: - First sort the
$payments
with respect toprocedures
like below:
代码段:
usort($payments,function($a,$b){
return strcmp($a->procedures,$b->procedures);
});
- 现在,您可以在循环时利用元素的索引。因此,如果它的第一个索引或名称与先前的索引不匹配,则只打印它,否则打印一个空字符串。
摘要:
<table>
<thead>
<tr>
<td>Procedures</td>
<td>Payments</td>
</tr>
</thead>
<?php foreach ($payments as $index => $payment): ?>
<tbody>
<tr>
<td><?= $index === 0 || $payment->procedures != $payments[$index - 1]->procedures ? $payment->procedures : ''; ?></td>
<td><?= $payment->bill_paid; ?></td>
</tr>
</tbody>
<?php endforeach; ?>
这篇关于如何在PHP中循环数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文