sele_itmid =
Array
(
[0] => 1
[1] => 1
[2] => 5
[3] => 6
)
$recp_qty =
Array
(
[0] => 4
[1] => 16
[2] => 1
[3] => 10
)
//when i tried using
$comine = array_combine($sele_itmid,$recp_qty);
print_r($comine);exit();
am getting a result like
Array
(
[1] => 16
[5] => 1
[6] => 10
)
what i actually want is
[1]=>4
[1] => 16
[5] => 1
[6] => 10
如果可能的话请解释为什么array_combine忽略它!!
获取数组后我真正想要的是需要对相同键的值进行求和
答案 0 :(得分:1)
"为什么array_combine忽略了它?" - 数组不允许重复键
这是一个使用array_map
函数的简单解决方案(它将总结相同键的值):
$result = [];
array_map(function($key, $b) use (&$result){
(isset($result[$key]))? $result[$key] += $b : $result[$key] = $b;
}, $sele_itmid, $recp_qty);
print_r($result);
输出:
Array
(
[1] => 20
[5] => 1
[6] => 10
)
答案 1 :(得分:0)
听起来好像你只想将两个数组映射在一起:
function sum($v1, $v2) {
return $v1 + $v2;
}
$result = array_map('sum', $sele_itmid, $recp_qty);
答案 2 :(得分:0)
在这里,$ sele_itmid的值被用作$ comine数组的键。由于数组不能有重复键,因此第一个值被拒绝。