【发布时间】:2012-08-17 02:37:40
【问题描述】:
我这里有两个数据:
第一个函数的结果:
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);
}
但是,我得到了错误的输出,条件是,如果 bindownertosites 的 SiteID 与 Computeghcomponents 的 SiteID 不匹配,那么只需打印 Deposit 的值,Reload 和 Redemption 应该等于 0。
Deposit, Reload and Redemption 都等于 0,这是错误的。这应该是正确的结果:
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
)
)
有可能得到这样的结果吗?请帮帮我,我一直在处理这个几乎一个星期,但我总是得到错误的输出。感谢您的回复。我把所有东西都放在这里是为了澄清这些事情。请在回答之前查看我的问题。请帮助我并以正确的方式指导我。先感谢您。
【问题讨论】:
-
伙计们,请帮帮我,我知道这对你们所有人来说有点容易,但我发现很难。我会感谢你的回复。
-
我没有得到你的问题,你的预期结果是什么?
-
@so geek,如果我的两个函数的SiteID不相等,那么只需打印BindOwnerToSites中的SiteID的数据并添加,三个键Deposit,Reload和Redemption并将值相等零。
-
那么最后的代码是预期的结果吗?你从 combine 函数中得到了什么?
-
@so geek,是的最后一个代码,我得到了错误的输出,所有的存款、重新加载和赎回的价值都变成了零。不知道怎么修改代码。
标签: php arrays printing array-merge