Kombinieren von 2 Arrays mit gleichen SchlüsselnPhp

PHP-Programmierer chatten hier
Guest
 Kombinieren von 2 Arrays mit gleichen Schlüsseln

Post 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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post