如何绑定两个数组结果并将其打印在正确的输出PHP中


How to bind the two array results and Print it in a right output PHP

这里有两个数据:

第一个函数的结果:

Array
(
[2] => Array
    (
        [SiteID] => 2
        [Balance] => 19000.00
        [MinBalance] => 100000.00
        [MaxBalance] => 1000000.00
        [OwnerAID] => 83
        [GroupID] => 1
    )
 [3] => Array
    (
        [SiteID] => 3
        [Balance] => 94000.99
        [MinBalance] => 100000.00
        [MaxBalance] => 500000.00
        [OwnerAID] => 17
        [GroupID] => 1
    )
[4] => Array
    (
        [SiteID] => 4
        [Balance] => 1000000.00
        [MinBalance] => 100000.00
        [MaxBalance] => 1000000.00
        [OwnerAID] => 12
        [GroupID] => 1
    )

)

第二个函数的结果:

 Array
(
 [3] => Array
    (
        [Deposit] => 459000
        [Reload] => 169100
        [Redemption] => 703576
    )
[2] => Array
    (
        [Deposit] => 1500
        [Reload] => 1000
        [Redemption] => 1000
    )
 )

现在,我需要绑定这两个函数的结果,我尝试使用以下代码:

    public function bindGHComponentsToSites()
    {
   error_reporting (E_ALL^ E_NOTICE);  
   $combine = array();
     foreach ($this->arrays as $keys => $data) {

       foreach($this->result as $keyss => $value){
            if($data['SiteID'] == $keyss){
                $merged = array_merge((array)$data, (array)$value);
            }
             else if ($data['SiteID'] != $keyss){
                 $val = array('Deposit'=>0, 'Reload'=>0, 'Redemption'=>0);
                 $merged = array_merge((array)$data, (array)$val);
             }
        }
              $this->combined[$data['SiteID']] = $merged;
     } 
      print_r($this->combined);
  }   

但是,我得到了错误的输出,条件是,如果bindownerSites的SiteID与Computeghcomponents的SiteID不匹配,那么只打印Deposit、Reload和Redemption的值应该等于零。

存款、充值和赎回都等于零,这是错误的。这应该是正确的结果:

Array
(
[2] => Array
    (
        [SiteID] => 2
        [Balance] => 19000.00
        [MinBalance] => 100000.00
        [MaxBalance] => 1000000.00
        [OwnerAID] => 83
        [GroupID] => 1
        [Deposit] => 1500
        [Reload] => 1000
        [Redemption] => 1000
    )
[3] => Array
    (
        [SiteID] => 3
        [Balance] => 94000.99
        [MinBalance] => 100000.00
        [MaxBalance] => 500000.00
        [OwnerAID] => 17
        [GroupID] => 1
        [Deposit] => 459000
        [Reload] => 169100
        [Redemption] => 703576
    )
[4] => Array
    (
        [SiteID] => 3
        [Balance] => 94000.99
        [MinBalance] => 100000.00
        [MaxBalance] => 500000.00
        [OwnerAID] => 17
        [GroupID] => 1
        [Deposit] => 0
        [Reload] => 0
        [Redemption] => 0
    )
  )

有可能得到这样的结果吗?伙计们,请帮帮我,我已经做了将近一个星期了,但我总是得到错误的结果。感谢你的回复。我把所有的东西都放在这里是为了澄清这些事情。请在你回答之前复习一下我的问题。请帮助我,以正确的方式引导我。提前谢谢。

这将达到您的预期,因此简单的

尝试

foreach (array_keys($this->arrays) as $value) {
    $default = array('Deposit' => 0, 'Reload' => 0, 'Redemption' => 0);
    if (array_key_exists($value, $this->result)) {
        $temp = array_merge($this->arrays[$value], $this->result[$value]);
        $this->arrays[$value] = $temp;
    } else {
        $temp = array_merge($this->arrays[$value], $default);
        $this->arrays[$value] = $temp;
    }
}
print_r($this->arrays);