我有这种情况$test
:
$months = Array
(
[3] => 7.56
[7] => 11.94
[1] => 6.90
[17] => 6.90
[6] => 6.90
[4] => 19.50
)
$total = Array
(
[31] => 10
[17] => 4
)
我想以这样的方式将它们组合起来,以便得到$x = array([17] => 6.90)
基本上将来自values
的{{1}}和来自$months
的{{1}}放在一起keys
= $total
任何想法?
感谢
答案 0 :(得分:2)
您应该尝试使用array_intersect_keys(doc)
来自doc:
<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_intersect_key($array1, $array2));
?>
输出
array(2) {
["blue"]=>
int(1)
["green"]=>
int(3)
}
“array_intersect_key()返回一个数组,其中包含array1的所有条目,其中包含所有参数中都存在的键。”
因此,如果你想要第一个数组的“值”,这就是解决方案。
答案 1 :(得分:1)
$x = array();
foreach($total as $key => $value)
{
if (array_key_exists($key, $months))
{
$x[$key] = $months[$key];
}
}
答案 2 :(得分:0)
foreach ($total as $k => $v) if (isset($months[$k])) $x[$k] = $months[$k];
答案 3 :(得分:0)
如果我没弄错的话,这可能是阵列合并的一项工作。
$x = array_merge($months,$total);