[英]How to merge/combine/insert of 2 different arrays based on key value in PHP
[英]How to merge arrays with same value and different key in PHP?
在这里,我想清楚地解释我的问题。
id company ID Employee ID Name Relationship Dob Age Gender
1 EMPL 00001 Choodamani Spouse 11-Aug-66 49 Female
2 EMPL 00001 Komala Mother 30-Oct-39 76 Female
3 EMPL 00001 Varshini Daughter 29-Apr-04 11 Female
4 EMPL 00001 Vasudevan Employee 15-Jul-62 53 Male
5 EMPL 00002 Siddharth Son 1-Jun-00 15 Male
6 EMPL 00002 Poongavanam Mother 21-Oct-39 76 Female
7 EMPL 00002 Aruna Spouse 16-Sep-68 47 Female
8 EMPL 00002 Abirami Daughter 7-May-97 18 Female
9 EMPL 00002 Murali Employee 7-Oct-67 48 Male
在这里,您可以看到一张表格,该表格是我从数据库中获取的。 在此数据中,您可以看到前四行的employee_id相同,但每行的id不同。 在这里,我需要在一个数组中合并相同的employee_id。
示例:一个数组中的所有00001 employee_id
尝试这个:
<?php
$new_sort = array();
foreach ($db_array as $db_row){
$key_row = $db_row["Employee_ID"];
unset($db_row["Employee_ID"]);
$new_sort[$key_row][] = $db_row;
}
?>
在输出上,您将拥有嵌套数组,其中$ new_sort [some_employee_id] =您的数据
ps,如果要创建新数组,其中数组名称必须为$ employee_id,例如:$ 0001,则不可能,因为变量名称必须以字母开头
// Assuming your data is available in an associative array ($_data):
$employees = array();
foreach($_data as $employee) {
$id = $employee['Employee ID'];
if(isset($employees[$id])) {
$employees[$id][] = $employee;
} else {
$employees[$id] = array($employee);
}
}
// The results are now grouped, so:
$employees['00001'] = array(
array(
'Name' => 'Choodamani',
// ...
),
array(
'Name' => 'Komala',
// ...
)
);
我希望这能帮到您
_form.php这个
<?php
class Claim
{
public function Arraycombine($keys, $values)
{
$result = array();
foreach ($keys as $i => $k) {
$result[$k][] = $values[$i];
}
array_walk($result, create_function('&$v', '$v = (count($v) == 1)? array_pop($v): $v;'));
return $result;
}
}
$data1 = ArrayHelper::map(Employee::find()->all(), 'id', 'employee_id');
$data2 = ArrayHelper::map(Employee::find()->all(), 'id', 'name');
$claim = new Claim();
$claimers = $claim->Arraycombine( $data1, $data2 );
echo "<pre>"; print_r($claimers);exit(); echo "</pre>";
?>
输出继电器:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.