PHP多数组合并:将工单数据关联至对应账户数组
PHP实现工单与账户数据关联归集
需要遍历$deskTickets工单数组与$accountArray账户数组,生成名为finalArray的新数组,将每个工单数据归入对应账户的Helpdesk_Tickets字段中,一个账户可对应多个工单。
原始输入代码
$deskTickets = array( array( "accountName"=> "Dame 1", "ticketNumber"=> "9782", "status"=> "Open", "createdTime"=> "2022-08-30T00:39:16.000Z" ), array( "accountName"=> "Dame 1", "ticketNumber"=> "6723", "status"=> "Open", "createdTime"=> "2022-08-30T00:39:16.000Z" ), array( "accountName"=> "Dame 2", "ticketNumber"=> "4567", "status"=> "Open", "createdTime"=> "2022-08-30T00:39:16.000Z" )); $accountArray=array( "Dame 1"=> array( "Account_Name"=> "Dame 1", "Store_Status"=> "Open", "Helpdesk_Tickets"=>"No Tickets" ), "Dame 2"=> array( "Account_Name"=> "Dame 2", "Store_Status"=> "Open", "Helpdesk_Tickets"=>"No Tickets" ));
解决方案代码
// 初始化finalArray为账户数组的副本 $finalArray = $accountArray; // 遍历所有工单 foreach ($deskTickets as $ticket) { $accountName = $ticket['accountName']; // 检查账户是否存在于finalArray中 if (isset($finalArray[$accountName])) { // 如果Helpdesk_Tickets还是初始的"No Tickets",先转为空数组 if ($finalArray[$accountName]['Helpdesk_Tickets'] === "No Tickets") { $finalArray[$accountName]['Helpdesk_Tickets'] = []; } // 将当前工单添加到对应账户的工单数组中 $finalArray[$accountName]['Helpdesk_Tickets'][] = $ticket; } } // 输出结果(可选) print_r($finalArray);
逻辑说明
- 先复制
$accountArray到$finalArray,保留原有账户基础信息 - 遍历每个工单,提取对应的账户名称
- 检查该账户是否存在于
finalArray中,若存在则将Helpdesk_Tickets字段从初始字符串转为数组(未初始化时) - 将当前工单追加到对应账户的工单数组内
期望输出结果
Array ( [Dame 1] => Array ( [Account_Name] => Dame 1 [Store_Status] => Open [Helpdesk_Tickets] => Array ( [0] => Array ( [accountName] => Dame 1 [ticketNumber] => 9782 [status] => Open [createdTime] => 2022-08-30T00:39:16.000Z ) [1] => Array ( [accountName] => Dame 1 [ticketNumber] => 6723 [status] => Open [createdTime] => 2022-08-30T00:39:16.000Z ) ) ) [Dame 2] => Array ( [Account_Name] => Dame 2 [Store_Status] => Open [Helpdesk_Tickets] => Array ( [0] => Array ( [accountName] => Dame 2 [ticketNumber] => 4567 [status] => Open [createdTime] => 2022-08-30T00:39:16.000Z ) ) ) )
内容的提问来源于stack exchange,提问作者Aster
相关产品推荐
相关产品推荐

