[英]manipulate result after join table
我有一个查询,我编写一个查询,并在codeigniter中加入各种表,并得到如下数组:
Array
(
[0] => Array
(
[MRID] => 1
[MSR_Name] => John
[MSR_email] => john@gmail.com
[MSR_mobile] => 9000000008
[MSR_hqdetail] => kjjh
[hqdetail_id] => 1
[doctor_id] => 1
[dr_msl_no] => DOC000012
[doctor_name] => Y K Singh
[dr_email] => yksingh@gmail.com
[chemist_id] => 1
[chemist_name] => Abhishek Srivastava
[chem_email] => abhishek@gmail.com
[chemist_code] => chem001
[chem_mobile] => 2147483647
[prod_id] => 1
[product_name] => Paracitamol
[unit] => 10
[pts] => 20
[scheme] => no scheme
)
[1] => Array
(
[MRID] => 1
[MSR_Name] => John
[MSR_email] => john@gmail.com
[MSR_mobile] => 9000000008
[MSR_hqdetail] => kjjh
[hqdetail_id] => 1
[doctor_id] => 2
[dr_msl_no] => DOC000013
[doctor_name] => Dipak Raichura
[dr_email] => dipakraichura@gmail.com
[chemist_id] => 1
[chemist_name] => Abhishek Srivastava
[chem_email] => abhishek@gmail.com
[chemist_code] => chem001
[chem_mobile] => 2147483647
[prod_id] => 1
[product_name] => Paracitamol
[unit] => 10
[pts] => 20
[scheme] => no scheme
)
)
我想操纵数组并想要这样的结果
Array
(
[0] => Array
(
[MRID] => 1
[MSR_Name] => John
[MSR_email] => john@gmail.com
[MSR_mobile] => 9000000008
[MSR_hqdetail] => kjjh
[hqdetail_id] => 1
[doctors] => array(
[0] => Array(
[doctor_id] => 1
[dr_msl_no] => DOC000012
[doctor_name] => Y K Singh
[dr_email] => yksingh@gmail.com
[chemist] =>Array(
[0] => Array(
[chemist_id] => 1
[chemist_name] => Abhishek Srivastava
[chem_email] => abhishek@gmail.com
[chemist_code] => chem001
[chem_mobile] => 2147483647
[product] =>Array(
[0] => Array(
[prod_id] => 1
[product_name] => Paracitamol
[unit] => 10
[pts] => 20
[scheme] => no scheme
)
)
)
)
)
[1] => Array(
[doctor_id] => 2
[dr_msl_no] => DOC000013
[doctor_name] => Dipak Raichura
[dr_email] => dipakraichura@gmail.com
[chemist] =>Array(
[0] => Array(
[chemist_id] => 2
[chemist_name] => chemist2
[chem_email] => chemist2@gmail.com
[chemist_code] => chem002
[chem_mobile] => 7656564565
product] =>Array(
[0] => Array(
[prod_id] => 2
[product_name] => Crocin
[unit] => 10
[pts] => 20
[scheme] => no scheme
)
)
)
)
)
)
)
)
请帮助我如何获得正确的结果,谢谢。
CodeIgniter Array Helper对于此类问题非常有用。 必须先加载它,然后才能起作用。
$this->load->helper('array');
Array Helper可以使用键数组从现有数组中提取新数组。 因此,对您感兴趣的键进行数组排列。
$id = ['MRID', 'MSR_Name', 'MSR_email', 'MSR_mobile', 'MSR_hqdetail', 'hqdetail_id'];
$aDoc = ['doctor_id', 'dr_msl_no', 'doctor_name', 'dr_email'];
$aChemist = [ 'chemist_id', 'chemist_name', 'chem_email', 'chemist_code', 'chem_mobile'];
$aproduct = [ 'prod_id', 'product_name', 'unit', 'pts', 'scheme'];
然后,您提取子阵列并将其重组以符合您的规格。 下面使用的变量$results
是查询返回的数组。
foreach($results as $value)
{
$chemist = elements($aChemist, $value);
$chemist['product'] = elements($aproduct, $value);
$doctor = elements($aDoc, $value);
$doctor['chemist'] = $chemist;
$doctors[] = $doctor;
}
$MRID[] = elements($id, $results[0]);
$MRID['doctors'] = $doctors;
$MIRD
数组现在应包含您指定的结果。
如果$results
有多个MRID
,则将需要其他代码来分别提取它们。
尽管这相对紧凑,但我倾向于认为您可能希望设计一个查询语句,以产生更接近最终需求的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.