我有一个如下所示的数组结构
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(),但没有成功。
请帮忙
提前致谢
答案 0 :(得分: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()
答案 1 :(得分:-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>
答案 2 :(得分:-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
)
)