繁体   English   中英

如何合并这两个数组

[英]How to merge these two arrays

我有一个包含地区名称的 $distNames 数组。

$distNames = array(0 => "North",1 => "West",2 => "South",3 => "East");

我有另一个名为 $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)
    );

总值应该是农村和城市的总和。 任何帮助表示赞赏。

$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);

这将适用于您定义的数组名称,即 $data、$distNames、$rdata 和 $udata

Hii 尝试使用这个。

<?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);

我已经这样做了

$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
      );
    }

谢谢你们的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM