2016-05-31 21 views
-4

私は地区名を含む$ distNames配列を持っています。これらの2つの配列をマージする方法

私は、地区のカウントを含む別の配列$ rdataを持っています。

$rdata = array("North" => array("rural" => 2, "urban" => 0), 
    "East" => array("rural" => 1, "urban" => 0)); 

私は、地区のカウントを含む$ udataという別の配列を持っています。

$rdata = array("South" => array("rural" => 0, "urban" => 1), 
    "East" => array("rural" => 0, "urban" => 2)); 

私は、地域配列に従って$ rdataと$ udataをマージする必要があります。期待される結果は次のようになります。

$data = array(
     'North' => array('rural' =>2,'urban' => 0,'total' => 3), 
     'South' => array('rural' =>0,'urban' => 1,'total' => 1), 
     'West' => array('rural' =>0,'urban' => 0,'total' => 0), 
     'East' => array('rural' =>1,'urban' => 2,'total' => 3) 
    ); 

合計値は、農村と都市の合計である必要があります。どんな助けもありがたい。

+0

あなたの$ udata配列はありません。私はそれが南を含む配列でなければならないと思う。 – PHJCJO

+0

私はそれを使用しようと答えました:) – user1234

答えて

0
$data = array(); 
for ($i = 0; $i < count($distNames); $i++) { 
    $tempArr = array(); 
    $direction = $distNames[$i]; 
    $data[$direction] = array(
     'rural' => isset($rdata[$direction]['rural']) ? $rdata[$direction]['rural'] : 0, 
     'urban' => isset($udata[$direction]['urban']) ? $udata[$direction]['urban'] : 0, 
     'total' => $rdata[$direction]['rural'] + $udata[$direction]['urban'] 
    ); 
} 

echo "<pre>"; 
print_r($data); 

これはすなわち、$データあなたによって定義された配列の名前に関して、$ distNames、$ RDATAと協力し、$ UDATA

0

斐伊川はこれを使用しようとします。

<?php 
$distNames = array(0 => "North",1 => "West",2 => "South",3 => "East"); 
$rdata = array("North" => array("rural" => 2,"urban" => 0),"East" => array("rural" => 1,"urban" => 0)); 
$udata = array("South" => array("rural" => 0,"urban" => 1),"East" => array("rural" => 0,"urban" => 2)); 

    $data = array(); 
foreach($distNames as $drname){ 
    $data[$drname]['rural'] = ($rdata[$drname]['rural'] + $udata[$drname]['rural']); 
    $data[$drname]['urban'] = ($rdata[$drname]['urban'] + $udata[$drname]['urban']); 
    $data[$drname]['total'] = ($new[$drname]['urban'] + $new[$drname]['rural']); 

} 
echo "<pre>";echo "<pre>";print_r($data); 
0

私は助けるために、この

$data = array(); 
    $total = 0; 
    for ($i = 0; $i < count($distNames); $i++) { 
     $direction = $distNames[$i]; 
     if(isset($tlRuralNw[$direction]) && isset($tlUrbanNw[$direction])) { 
     $total = $tlRuralNw[$direction] + $tlUrbanNw[$direction]; 
     } 
     elseif(isset($tlRuralNw[$direction]) && !isset($tlUrbanNw[$direction])) { 
     $total = $tlRuralNw[$direction]; 
     } 
     elseif(!isset($tlRuralNw[$direction]) && isset($tlUrbanNw[$direction])) { 
     $total = $tlUrbanNw[$direction]; 
     } 
     elseif(!isset($tlRuralNw[$direction]) && !isset($tlUrbanNw[$direction])) { 
     $total = 0; 
     } 
     $data[$direction] = array(
     'rural' => isset($tlRuralNw[$direction])?$tlRuralNw[$direction]:0, 
     'urban' => isset($tlUrbanNw[$direction])?$tlUrbanNw[$direction]:0, 
     'total' => $total 
    ); 
    } 

みんなありがとうようにそれを行っています。

関連する問題