如何在PHP中获得2个组合数组的结果?

时间:2015-02-26 08:54:53

标签: php arrays

我有2个数组,$ m和$ w:

$m = Array(
 [0] => a
 [1] => b
 [2] => c
);

$w = Array(
 [0] => 1
 [1] => 2
 [2] => 3
);

如何将这两个数组组合起来得到如下结果:

$arrFields = Array(
     Array( 
       "VALUE" => a,
       "DESCRIPTION" => 1 
     ), 
     Array( 
       "VALUE" => b, 
       "DESCRIPTION" => 2  
     ),
     Array( 
       "VALUE" => c, 
       "DESCRIPTION" => 3 
     )
);

帮我解决这个问题,谢谢。

3 个答案:

答案 0 :(得分:3)

这段代码可以解决这个问题:将两个数组组合在一起。 它还检查第二个数组是否具有相同的键,否则它将使描述为空。

$arrFields = array();
foreach ($m as $k => $v) {
    $arrFields[] = array(
        'VALUE' => $v,
        'DESCRIPTION' => (isset($w[$k]) && !empty($w[$k]) ? $w[$k] : '')
    );
}

答案 1 :(得分:2)

这应该适合你:

(在这里,我只使用array_map()浏览$m的每个元素,并使用$m$w中的值返回数组

<?php

    $m = array("a", "b", "c");
    $w = array(1, 2, 3);

    $arrFields = array_map(function($v)use($w, $m){
        return array("VALUE" => $v, "DESCRIPTION" => $w[array_search($v, $m)]);
    }, $m);

    print_r($arrFields);

?>

输出:

Array
(
    [0] => Array
        (
            [VALUE] => a
            [DESCRIPTION] => 1
        )

    [1] => Array
        (
            [VALUE] => b
            [DESCRIPTION] => 2
        )

    [2] => Array
        (
            [VALUE] => c
            [DESCRIPTION] => 3
        )

)

答案 2 :(得分:2)

使用array_map功能

的更方便的方法
$return = array_map(function($m_item, $w_item){
    return array("VALUE" => $m_item, "DESCRIPTION" => $w_item);
    }, $m, $w);
print_r($return);