我在php中有两个数组,现在我想将这两个数组合如下。
$a1 = Array(
'ansid4' => 4,
'ansid5' => 5,
'ansid6' => 6
);
$a2 = Array(
'value' => 'demo',
'value2' => 'demo2'
);
必填项:
$target = Array(
4 => 'demo',
5 => 'demo2',
6 => Null
);
提前致谢
答案 0 :(得分:0)
答案 1 :(得分:0)
$targetArray = array('a'=>'','b'=>'');
$sourceArray = array('a'=>array(1,2,3),'c'=>'c','d'=>'d');
$result = array_merge( $targetArray, $sourceArray);
$array_text = recurse_array($result);
echo $array_text;
function recurse_array($values){
$content = '';
if( is_array($values) ){
foreach($values as $key => $value){
if( is_array($value) ){
$content.="$key<br />".recurse_array($value);
}else{
$content.="$key = $value<br />";
}
}
}
return $content;
}
答案 2 :(得分:0)
$resultArray = array();
while ($key = array_pop($arrayOne)) {
$resultArray[$key] = array_pop($arrayTwo);
}
或者你可以做到
$resultArray = array();
foreach ($arrayOne as $key) {
$resultArray[$key] = array_shift($arrayTwo);
}
两种解决方案的缺点是它们使用一个或两个阵列。 如果你在组合后仍然需要它们,你可以制作阵列的副本并使用它们。
答案 3 :(得分:0)
两个数组中必须有相同数量的元素,因此我们从元素计数开始,并按array_pad
if (count($a1) > count($a2))
{
$a2 = array_pad1($a2, count($a1), NULL);
}
elseif (count($a1) < count($a2))
{
$a1 = array_pad($a1, count($a2), NULL);
}
然后我们使用array_combine
创建新数组。从两个数组中,我们使用array_values
的值。从第一个数组我们使用值作为键,从第二个数组我们使用值作为值: - )
$target = array_combine(array_values($a1), array_values($a2))