2016-07-26 11 views
0

私はPHPで2つの配列を持っていますが、今はこの2つの配列を以下のように組み合わせたいと思います。2つの配列をPHPで結合する

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

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

必要な出力:

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

事前

+0

[array-count-values](http://php.net/manual/en/ function.array-count-values.php)および[array-merge](http://php.net/manual/en/function.array-merge.php) – dod29

+2

2番目の配列が無効で、配列キーが一意である必要があります – Ghost

答えて

0
$resultArray = array(); 

while ($key = array_pop($arrayOne)) { 
    $resultArray[$key] = array_pop($arrayTwo); 
} 

array_padを使用してみたり、あなたは

$resultArray = array(); 

foreach ($arrayOne as $key) { 
    $resultArray[$key] = array_shift($arrayTwo); 
} 

どちらのソリューションは、彼らが1つのまたは両方の配列を消費するという欠点を持って行うことができます。 組み合わせの後でも必要な場合は、配列のコピーを作成し、それらを消費させることができます。

0

でのおかげで、あなたがキーと値の配列のこの機能アレイに送信することができ、それが連想配列を返しarray_combine を見てみましょう

2つの配列には同じ数のelemeが必要ですnts。あなたはそれの世話を傾ける 場合、

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; 
} 
0

あなたは私たちが要素のカウントを開始し、その後、我々は新しい配列を作成しarray_combineを、使用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); 
} 

により、必要なNULL値を追加しますので、両方の配列の要素数が同じでなければなりません。両方の配列から、array_valuesの値を使用します。最初の配列からはキーとして値を使用し、2番目の配列では値として値を使用します:-)

$target = array_combine(array_values($a1), array_values($a2)) 
関連する問題