在php中组合两个数组

时间:2016-07-26 05:56:20

标签: php for-loop foreach

我在php中有两个数组,现在我想将这两个数组合如下。

$a1 = Array(
    'ansid4' => 4,
    'ansid5' => 5,
    'ansid6' => 6
);

$a2 = Array(
    'value' => 'demo',
    'value2' => 'demo2'
);

必填项:

$target = Array(
    4 => 'demo',
    5 => 'demo2',
    6 => Null
);

提前致谢

4 个答案:

答案 0 :(得分:0)

看看array_combine 你可以发送到这个函数数组的键和值数组,它返回assoc数组

请注意,两个数组必须具有相同数量的元素。 如果你无法解决这个问题,请在

前使用array_pad

答案 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

添加必要的NULL值
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))