我需要组合两个数组,第一个数组中的键应该替换为第二个数组中的相应值。如果两个数组具有相同数量的元素并且它们具有相同的顺序,则以下代码可以正常工作。
$first = array("a"=>"red", "b"=>"green", "c"=>"blue");
$second = array("a"=>"sun", "b"=>"grass", "c"=>"sky");
$new = array_combine($second, $first);
print_r($new);
结果
Array
(
[sun] => red
[grass] => green
[sky] => blue
)
但是我需要这个工作在他们没有相同元素编号或不符合相同顺序的情况下。我怎样才能实现它?
答案 0 :(得分:0)
如果你需要修剪你的阵列以便你可以使用array_combine()
,下面的方法将通过修剪最大的一个来使两个长度相同,然后将它们组合起来。
$first = array("a"=>"red", "b"=>"green", "c"=>"blue");
$second = array("a"=>"sun", "b"=>"grass", "c"=>"sky", "d" => "moon");
$first = array_slice($first, 0, count($second));
$second = array_slice($second, 0, count($first));
$new = array_combine($second, $first);
print_r($new);
结果:
Array
(
[sun] => red
[grass] => green
[sky] => blue
)
它适用于所有情况:
$first
大于$second
。$second
大于$first
。$first
和$second
具有相同的尺寸。