[英]Convert an associative array into an associative array which has a key with another associative array as its value in php
我有一個關聯數組 $data:
Array
(
[0] => Array
(
[emp_id] => 1
[emp_name] => Emp1
[emp_email] => emp1@example.com
[dep_id] => 1
[dep_name] => Mario
)
[1] => Array
(
[emp_id] => 1
[emp_name] => Emp1
[emp_email] => emp1@example.com
[dep_id] => 2
[dep_name] => Tony
)
[2] => Array
(
[emp_id] => 2
[emp_name] => Emp2
[emp_email] => emp2@example.com
[dep_id] => 3
[dep_name] => Jack
)
)
我想將此數組轉換為關聯數組,其中“依賴”作為關聯數組,具有兩個字段dep_name
和dep_id
字段,如下所示:
Array
(
[0] => Array
(
[emp_id] => 1
[emp_name] => Emp1
[emp_email] => emp1@example.com
[dependant] => [
[
[dep_id] => 1
[dep_name] => Mario
]
[
[dep_id] => 2
[dep_name] => Tony
]
]
)
[1] => Array
(
[emp_id] => 2
[emp_name] => Emp2
[emp_email] => emp2@example.com
[dependant] => [
[
[dep_id] => 3
[dep_name] => Jack
]
)
)
我嘗試使用這種方式:
$newEmployeeInfo = [];
$newEmployeeKey = [];
$newDependantInfo = [];
$newKey = 0;
foreach($data as $dataKey => $dataValue){
if(!in_array($dataValue["emp_id"],$newEmployeeKey)){
++$newKey;
$newEmployeeInfo[$newKey]["emp_id"] = $dataValue["emp_id"];
$newEmployeeInfo[$newKey]["emp_name"] = $dataValue["emp_name"];
$newEmployeeInfo[$newKey]["emp_email"] = $dataValue["emp_email"];
}
$newEmployeeInfo[$newKey]["dependant"][$dataKey] = $dataValue[$newDependantInfo];
$newDependantInfo[$newKey]["dep_id"] = $dataValue["dep_id"];
$newDependantInfo[$newKey]["dep_name"] = $dataValue["dep_name"];
];
}
我能夠使用具有各自值的鍵emp_id
、 emp_name
和emp_email
創建關聯數組,但無法將dep_id
和dep_name
推入“依賴”字段。
試試這個
$newArr = [];
foreach($data as $key => $value){
$newArr[$value['emp_id']]['emp_id'] = $value['emp_id'];
$newArr[$value['emp_id']]['emp_name'] = $value['emp_name'];
$newArr[$value['emp_id']]['emp_email'] = $value['emp_email'];
$newArr[$value['emp_id']]['dependant'][] = [
'dep_id'=>$value['dep_id'],
'dep_name'=>$value['dep_name']
];
}
也可能您需要重新索引數組,因為索引將是新 arr 中的 emp_id
注意:我還沒有測試代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.