Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中组合类似键上的数组?_Php_Arrays_Array Merge - Fatal编程技术网

如何在php中组合类似键上的数组?

如何在php中组合类似键上的数组?,php,arrays,array-merge,Php,Arrays,Array Merge,我遇到这种情况$test: $months = Array ( [3] => 7.56 [7] => 11.94 [1] => 6.90 [17] => 6.90 [

我遇到这种情况
$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)

基本上将
$months
中的
值和
$total
中的
键放在一起,其中
$months.key
=
$total.key

有什么想法吗


谢谢

如果我没弄错的话,这可能是阵列合并的工作

$x = array_merge($months,$total);

如果我没弄错的话,这可能是数组合并的工作

$x = array_merge($months,$total);

您应该尝试使用数组相交键()

从文档:

<?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_intersect_key()返回一个数组,该数组包含array1的所有条目,这些条目的键在所有参数中都存在。”


因此,如果您希望始终使用第一个数组的“值”,这就是解决方案。

您应该尝试使用数组相交键()

从文档:

<?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_intersect_key()返回一个数组,该数组包含array1的所有条目,这些条目的键在所有参数中都存在。”


因此,如果您始终想要第一个数组的“值”,这就是解决方案。

您能进一步解释您想要的结果和给定的问题吗?我很难理解你在寻找什么。你能进一步解释一下你想要的结果和给定的问题吗?我很难理解你在寻找什么。是的——我假设OP会知道,这不是为了让他的代码功能完整,而是为了解决他的问题:)是的——我假设OP会知道,这不是为了让他的代码功能完整,这是为了解决他的问题:)这在功能上比我的解决方案更正确,假设0是一个月的有效值,我的示例可能设置不正确。这在功能上比我的解决方案更正确,假设0是一个月的有效值,我的示例可能设置不正确。
array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}