2013-03-22 2 views
0

Как достичь следующего?PHP: сравнить массивы и скопировать первое значение массива во второе значение массива, где значение второго массива равно нулю

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

Я хочу, чтобы сравнить массив 1 и 2 массива и скопировать значение из массива 1 в массиве 2, когда значение массива 2 является null. Пример из массива выше я хочу, чтобы скопировать только c1 & ключ с4 из массива 1 в массиве 2.

Спасибо за помощь

+0

..How он делся? – George

ответ

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

+1, на самом деле самый читаемый способ. – raina77ow

0

Попробуйте это:

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

if ($value==null) $array2[$key]=$array1[$key]; 
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); 
?> 
+0

@ Rajani ваш приветственный помощник рад помочь вам :) – alwaysLearn

Смежные вопросы