0

我有一个如下所示的数组结构

Array
(
    [1] => Dept1
    [2] => Dept2
    [3] => Dept3
)

我有另一个数组如下

Array
(
    [1] => Array
        (
            [user1] => 58
            [user3] => 75
        )

    [2] => Array
        (
            [user6] => 162
        )

    [3] => Array
        (
            [user7] => 2
            [user8] => 126
            [user9] => 148

        )
)

我想

Array
    (
        [Dept1] => Array
            (
                [user1] => 58
                [user3] => 75
            )

        [Dept2] => Array
            (
                [user6] => 162
            )

        [Dept3] => Array
            (
                [user7] => 2
                [user8] => 126
                [user9] => 148

            )
    )

第二个数组中的数字是部门编号。它们的值存在于第一个数组中。我想用第一个数组中的值替换第二个数组中的部门编号。

我尝试过使用array_replace()但没有成功。

请帮忙

提前致谢

4

3 回答 3

4

如果第二个数组的元素少于查找数组,或者键的顺序不同,则需要先映射键值,然后使用array_combine().

array_combine(array_map(function($key) use ($depts) {
    return $depts[$key]; // translate key to name
}, array_keys($dept_values)), $dept_values));

否则,您可以立即组合它们:

array_combine($depts, $dept_values);

也可以看看:array_map()

于 2013-07-05T07:03:23.977 回答
-1

尝试这个。基本上加入爆炸会做你的工作。

<html>
<head>
<title>Copy to new array</title>
</head>
<body>
<?php
$dept= array('Dept1', 'Dept2', 'Dept3', 'Dept4');
$temp= join(",",$dept);
$department=explode(",",$temp);
echo "The first element in new array is: " . $department[0];
echo " and the second element in new array is: " . $department[1];
?>
</body>
</html>
于 2013-07-05T07:10:33.897 回答
-1

这段代码对我来说按预期工作:

PHP代码:

<?php
print_r(array_combine($firstArray, $secondArray));
?>

数组输出:

Array
(
    [Dept1] => Array
        (
            [user1] => 58
            [user3] => 75
        )

    [Dept2] => Array
        (
            [user6] => 162
        )

    [Dept3] => Array
        (
            [user7] => 2
            [user8] => 126
            [user9] => 148
        )

)
于 2013-07-05T07:17:37.070 回答