I have data here:
Array
(
[3] => Array
(
[SiteID] => 3
[Balance] => 94000.99
[MinBalance] => 100000.00
[MaxBalance] => 500000.00
[OwnerAID] => 17
[GroupID] => 1
[Deposit] => 459000
[Redemption] => 703576
[Reload] => 169100
)
[2] => Array
(
[SiteID] => 2
[Balance] => 19000.00
[MinBalance] => 100000.00
[MaxBalance] => 1000000.00
[OwnerAID] => 83
[GroupID] => 1
[Deposit] => 1500
[Redemption] => 1000
[Reload] => 1000
)
[139] => Array
(
[SiteID] => 139
[Balance] => 855100.00
[MinBalance] => 100000.00
[MaxBalance] => 1000000.00
[OwnerAID] => 23
[GroupID] => 1
[Deposit] => 0
[Redemption] => 0
[Reload] => 0
)
)
I need to group this arrays in to two groups: First group – all OwnerAID owning one SiteID and the Second group all OwnerAID owning more than one SiteID. Is it possible to make it? The result should be shown like this:
here’s the group of OwnerAID owning one SiteID in a one big array:
Array
(
[17] => Array
(
[Sites] => Array
(
[0] => Array
(
[SiteID] => 3
[Balance] => 94000.99
[MinBalance] => 100000.00
[MaxBalance] => 500000.00
[OwnerAID] => 17
[GroupID] => 1
[Deposit] => 459000
[Redemption] => 703576
[Reload] => 169100
)
)
)
}
while here, OwnerAID owning more than one SiteID in another one big array:
Array
(
[83] => Array
(
[Sites] => Array
(
[0] => Array
(
[SiteID] => 2
[Balance] => 19000.00
[MinBalance] => 100000.00
[MaxBalance] => 1000000.00
[OwnerAID] => 83
[GroupID] => 1
[Deposit] => 1500
[Redemption] => 1000
[Reload] => 1000
)
[1] => Array
(
[SiteID] => 149
[Balance] => 150000.00
[MinBalance] => 100000.00
[MaxBalance] => 250000.00
[OwnerAID] => 83
[GroupID] => 1
[Deposit] => 0
[Redemption] => 0
[Reload] => 0
)
)
)
Someone suggest me this code but I already modified it, I do some research to modify this code. Please help me to accomplish this kind of result. Please be patient in answering my question, I’m just a beginner in a world of programming in PHP.here’s the code:
public function groupIndividualAndAggregateSites()
{
$owners = array();
foreach($this->combined as $key => $value) {
$owner_id = $value['OwnerAID'];
$site_id = $value['SiteID'];
if (array_key_exists($owner_id,$owners)) {
// He has one or more sites already?
if(is_array($owners[$owner_id])) {
array_push($owners[$owner_id],$site_id);
} else {
// User already has one site.
// Make an array instead and add old and new siteID
$old_site_id = $owners[$site_id];
$owners[$owner_id] = array_merge((array)$value, array($old_site_id));
}
} else {
$owners[$owner_id] = array($value,'Sites'=> array($site_id));
}
}
print_r($owners);
}
Please help me, and Thank you in advance. I hope someone could help me to come up with this kind of result. Please guide me in proper way.
This returns exactly what you want.