亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從其他2個數組構造一個關聯數組,并通過一個公共鍵鏈接

從其他2個數組構造一個關聯數組,并通過一個公共鍵鏈接

PHP
滄海一幻覺 2021-05-13 13:30:02
問題:我想將2個關聯數組組合成一個。要鏈接這些陣列,兩個中都存在ID密鑰。輸入:要使用api調用來檢索我的聯系人,我必須執行2個請求:首先使用ID檢索聯系人,并通過電子郵件發送地址,然后獲取一些信息,例如姓名,城市等。第一個返回這樣的數組:$contactArray = array(    array(        "CreatedAt" => "2019-04-12T11:53:26Z",        "DeliveredCount" => 0,        "Email" => "[email protected]",        "ExclusionFromCampaignsUpdatedAt" => "2019-04-28T09:21:35Z",        "ID" => 1864410583,        "IsExcludedFromCampaigns" => false,        "IsOptInPending" => false,        "IsSpamComplaining" => false,        "LastActivityAt" => "2019-04-28T09:21:35Z",        "LastUpdateAt" => "2019-04-28T09:21:35Z",        "Name" => "",        "UnsubscribedAt" => "",        "UnsubscribedBy" => ""    ),    array(        "CreatedAt" => "2019-04-12T12:39:30Z",        "DeliveredCount" => 0,        "Email" => "[email protected]",        "ExclusionFromCampaignsUpdatedAt" => "",        "ID" => 1864410588,        "IsExcludedFromCampaigns" => false,        "IsOptInPending" => false,        "IsSpamComplaining" => false,        "LastActivityAt" => "2019-04-12T12:39:30Z",        "LastUpdateAt" => "2019-04-12T12:39:30Z",        "Name" => "",        "UnsubscribedAt" => "",        "UnsubscribedBy" => ""    ));第二次調用,返回一個類似的數組$contactDataArray =        array(            array(                "ContactID" => 1864410583,                "Data" => array(                    array(                        "Name" => "firstname",                        "Value" => "Mark"                    ),                    array(                        "Name" => "city",                        "Value" => "Miami"                    ),                    array(                        "Name" => "name",                        "Value" => "Terry"                    ),                    array(                        "Name" => "phone",                        "Value" => "555-5555"                    )                ),                "ID" => 1864410583            ),在中$contactArray,ID鍵與ContactID鍵和ID中的ID鍵匹配$contactDataArray
查看完整描述

3 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

對于PHP> = 7.1,可以使用list()使用數組解構

<?php 


$output = [];


foreach ($contactDataArray as [

    'ID' => $id,

    'Data' => [

        ['Name' => $firstnameKey, 'Value' => $firstnameValue],

        ['Name' => $cityKey, 'Value' => $cityValue],

        ['Name' => $nameKey, 'Value' => $nameValue],

        ['Name' => $phoneKey, 'Value' => $phoneValue]

    ]

]) {

    $output[] = [

        "Email" => $contactArray[array_search($id, array_column($contactArray, 'ID'))]['Email'],

        "ID" => $id,

        $firstnameKey => $firstnameValue,

        $cityKey => $cityValue,

        $nameKey => $nameValue,

        $phoneKey => $phoneValue

    ];

}


var_dump($output);

演示版


查看完整回答
反對 回復 2021-05-28
?
米脂

TA貢獻1836條經驗 獲得超3個贊

您可以使用foreach做到這一點,


$result = [];

foreach ($contactDataArray as $key => $value) {

    $ids   = array_column($contactArray, "ID"); // fetching all values from contactArray

    if (!empty(array_intersect([$value['ContactID'], $value['ID']], $ids))) { // checking if both satisfy the condition

        $result[$key] = array_column($value['Data'], 'Value', 'Name'); // combining name and value

        // searchng for key with matched ContactID

        $result[$key]['Email'] = $contactArray[array_search($value["ContactID"], $ids)]['Email'];

        $result[$key]['ID'] = $value["ContactID"];

    }

}

演示。


查看完整回答
反對 回復 2021-05-28
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

你可以試一下嗎?


$output = [];

for($i = 0; $i < count($contactDataArray); $i++) {

    $arrIDandEmail = [

        'Email' => isset($contactArray[$i]['Email']) ? $contactArray[$i]['Email'] : '', 

        'ID' => isset($contactDataArray[$i]['ID']) ? $contactDataArray[$i]['ID'] : ''

    ];

    $arrData = array_column($contactDataArray[$i]["Data"], "Value", "Name");

    $newArray = array_merge($arrIDandEmail, $arrData);

    $output[] = $newArray;

}


查看完整回答
反對 回復 2021-05-28
  • 3 回答
  • 0 關注
  • 186 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號