我有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
)
);
帮我解决这个问题,谢谢。
答案 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);