0

以下を達成する方法は?

$array1 = array( id => '11', c1 => 'abcd', c2 => '4500', c3 => 'texas' ,c4=>'name' );
$array2 = array( id => '12', c1 => '',    c2 => '4500', c3 => 'arizona', c4=>'' );

配列 1 と配列 2 を比較し、配列 2 の値が の場合に配列 1 から配列 2 に値をコピーしますnull。上記の配列の例では、c1 & c4 キーのみを配列 1 から配列 2 にコピーしたいと考えています。

助けてくれてありがとう

4

3 に答える 3

4

foreach()ループはどうですか:

foreach($array1 as $key=>$value){
    if(!$array2[$key]){
        $array2[$key] = $value;
    }
}

最小化されていますが、少し読みにくくなっています。

foreach($array1 as $key=>$value){
    $array2[$key] = $array2[$key] ? $array2[$key] : $value;
}
于 2013-03-22T15:23:21.283 に答える
0

これを試して :

foreach($array2 as $key=>$value)

if ($value==null) $array2[$key]=$array1[$key];
于 2013-03-22T15:25:58.113 に答える
0

これを試して

<?php
$array1 = array( id => '11', c1 => 'abcd', c2 => '4500', c3 => 'texas' ,c4=>'name' );
$array2 = array( id => '12', c1 => '',    c2 => '4500', c3 => 'arizona', c4=>'' );

foreach($array2 as $key =>$value)
{
  if($value == '')
 {
    $array2[$key] = $array1[$key];
 }  
 }  

print_r($array2);
 ?>
于 2013-03-22T15:28:57.420 に答える