你好,只是一个新手在PHP,需要你的帮助很严重。我实际上有两个数组,我希望它能够结合起来。
['a1']=>array(
[0]=>200,
[1]=>300,
[2]=>300
),
['a2']=>array(
[0]=>100,
[1]=>600,
[2]=>200
)
['a1']=>array(
[0]=>gen,
[1]=>gen2,
[2]=>gen
),
['a2']=>array(
[0]=>gen2,
[1]=>gen3,
[2]=>gen3
)
我希望我的输出为:
[a1]=>(
[gen]=>200,
[gen2]=>300,
[gen]=>300,
)
[a2]=>(
[gen2]=>100,
[gen3]=>600,
[gen3]=>200,
)
非常感谢您的帮助
我尝试使用此代码并且能够得到我想要的结果,除非有重复,它没有显示重复值,或者如果键是重复的话有选择,它必须添加值。
再次感谢您的帮助。
<?php
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200));
$array2 = array(a1=>array('gen','gen2','gen'), a2=>array('gen2','gen3','gen3'));
$result = array();
foreach($array1 as $k => $v) {
$result[$k] = array_combine($array2[$k], $v);
}
print_r($result);
?>
答案 0 :(得分:2)
$keys = array(0=>'gen', 1=>'gen2', 2=>'gen3');
$values = array(0=>200, 1=>300, 2=>300);
$a1 = array_combine($keys, $values);
注意:我在提供print_r()
输出时重建了数组。但这应该让你开始。
答案 1 :(得分:1)
您应该使用array_combine
功能。
$array1 = array(200,300,300);
$array2 = array('gen','gen2','gen3');
$result = array_combine($array2, $array1); // $result will be your desired array
你可以将它与foreach结合起来完成这项工作。
<?php
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200));
$array2 = array(a1=>array('gen','gen2','gen3'), a2=>array('gen2','gen3','gen7'));
$result = array();
foreach($array1 as $k => $v) {
$result[$k] = array_combine($array2[$k], $v);
}
print_r($result);
?>
答案 2 :(得分:0)
在这种情况下,PHP array_combine()
会很好用。
$a1 = array(200,300,300);
$a2 = array('gen','gen2','gen3');
var_dump(array_combine($a2, $a1));
功能参考:http://www.php.net/manual/en/function.array-combine.php
答案 3 :(得分:0)
以下是我的工作示例:
$arr1 = array(
(0)=>200,
(1)=>300,
(2)=>300
);
$arr2=array(
(0)=>100,
(1)=>600,
(2)=>200
);
$a1=array(
(0)=>'gen',
(1)=>'gen2',
(2)=>'gen3'
);
$a2=array(
(0)=>'gen2',
(1)=>'gen3',
(2)=>'gen7'
);
var_dump(array_combine($a1, $arr1));
在我的本地主机上测试过。