Page 1 of 1

Kombinieren von 2 Arrays mit gleichen Schlüsseln

Posted: 14 Jan 2025, 12:51
by Guest
Wie kann ich zwei Arrays kombinieren, wobei State von einem = State des zweiten UND ProgramName von 1 = ProgramName des zweiten ist, wenn das folgende Array gegeben ist?

Code: Select all

Array
(
[0] => stdClass Object
(
[Year] => 2013
[State] => AK
[ProgramName] => Medicaid
[Age21Total] => 56324
[Age21FFS] => 56324
[Age21MCO] => 56324
[Age21Other] =>
[Under21Total] =>
[Under21FFS] =>
[Under21MCO] =>
[Under21Other] =>
)

[1] => stdClass Object
(
[Year] => 2013
[State] => AK
[ProgramName] => Medicaid
[Age21Total] =>
[Age21FFS] =>
[Age21MCO] =>
[Age21Other] =>
[Under21Total] => 99085
[Under21FFS] => 99085
[Under21MCO] => 99085
[Under21Other] =>
)
[2] => stdClass Object
(
[Year] => 2013
[State] => AK
[ProgramName] => CHIP
[Age21Total] => 563241
[Age21FFS] => 563241
[Age21MCO] => 563241
[Age21Other] =>
[Under21Total] =>
[Under21FFS] =>
[Under21MCO] =>
[Under21Other] =>
)

[3] => stdClass Object
(
[Year] => 2013
[State] => AK
[ProgramName] => CHIP
[Age21Total] =>
[Age21FFS] =>
[Age21MCO] =>
[Age21Other] =>
[Under21Total] => 990851
[Under21FFS] => 990851
[Under21MCO] => 990851
[Under21Other] =>
)
)
Meine Versuche:

Code: Select all

    for($i = 0; $i < $rCt; ++$i){
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['Age 21+']['Total Enrolled'] = $responses[$i]->Age21Total;
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['Age 21+']['FFS'] = $responses[$i]->Age21FFS;
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['Age 21+']['MCO'] = $responses[$i]->Age21MCO;
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['Age 21+']['Other'] = $responses[$i]->Age21Other;

$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['< Age 21']['Total Enrolled'] = $responses[$i]->Under21Total;
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['< Age 21']['FFS'] = $responses[$i]->Under21FFS;
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['< Age 21']['MCO'] = $responses[$i]->Under21MCO;
$response_tree[$responses[$i]->ProgramName][$responses[$i]->State]['< Age 21']['Other'] = $responses[$i]->Under21Other;
}
produzieren:

Code: Select all

Array
(
[Medicaid] => Array
(
[AK] => Array
(
[Age 21+] => Array
(
[Total Enrolled] =>
[FFS] =>
[MCO] =>
[Other] =>
)

[< Age 21] => Array
(
[Total Enrolled] => 99085
[FFS] => 99085
[MCO] => 99085
[Other] =>
)

)
Wenn ich brauche:

Code: Select all

Array
(
[Medicaid] => Array
(
[AK] => Array
(
[Age 21+] => Array
(
[Total Enrolled] => 56324
[FFS] => 56324
[MCO] => 56324
[Other] =>
)

[< Age 21] => Array
(
[Total Enrolled] => 99085
[FFS] => 99085
[MCO] => 99085
[Other] =>
)

)
Wie kann ich also das Array erstellen, das ich brauche? Normalerweise würde ich davon ausgehen, dass array_merge aus zwei separaten Arrays besteht, die die Daten enthalten, aber die Zusammenführung muss stattfinden, wenn der Status und der Programmname für jedes Element gleich sind