这里有两个数据:
第一个函数的结果:
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);