将2个嵌套数组合并为一个具有多个值的嵌套数组

时间:2016-05-06 08:24:29

标签: php

我有2个像这样的嵌套数组

function findMeetings(db, meeting, callback) {  
    var host = meeting.host;

    db.collection('users').findOne({'_id': new ObjectId(host)}, function(err, docr) {
        var emails = [];

        if (!err && docr && docr.emails) {
            docr.emails.forEach(function(e) {
                emails.push(e.email + (e.primary ? '(P)' : ''));
            });
        }

        ...

我试图将其合并到数组中以具有类似的内容

array:1 [
  0 => array:1 [
    "id" => 6
  ],
  1 => array:1 [
    "id" => 4
  ]
]

array:1 [
  0 => array:1 [
    "id" => 509
  ],
  1 => array:1 [
    "id" => 256
  ]
]

我尝试过PHP的array:1 [ 0 => array:1 [ "ssh_id" => 6 "d_id" => 509 ], 1 => array:1 [ "ssh_id" => 4 "d_id" => 256 ] ] 函数,但是我没有得到我想要的结果。这可能吗?

2 个答案:

答案 0 :(得分:3)

为简单起见,我尝试使用循环:

$arr1 = array(
            array("id"=>6),
            array("id"=>"4")
    );
$arr2 = array(
            array("id"=>509),
            array("id"=>256)
    );

$result = array();
foreach($arr1 as $k=>$a) {
    $result[$k] = array("ssh_id"=>$a['id'], "d_id" => $arr2[$k]['id']);
}

答案 1 :(得分:2)

您也可以使用for循环执行此操作。

$final = array();
for($i = 0; $i < count($arr1); $i++){
    $final[] = array("ssh_id" => $arr1[$i]['id'], "d_id" => $arr2[$i]['id']);
}

<强>结果

Array
(
    [0] => Array
        (
            [ssh_id] => 6
            [d_id] => 509
        )

    [1] => Array
        (
            [ssh_id] => 4
            [d_id] => 256
        )

)