2016-12-16 1 views
0

j'ai ces deux tableaux:PHP tableau Multidimensional Merge basé sur des clés

$array1 = [ 
    '1' => 285.52, 
    '2' => 427.76 
]; 

$array2 = [ 
    '1' => 123.44, 
    '2' => 48.32 
]; 

Les touches sur chacun d'entre eux sont l'identifiant pour le client, le premier est le montant dû et le second est le montant payé, je veux obtenir les résultats suivants:

$mergedArrays = [ 
    '1' => [ 
    'owed' => 285.52, 
    'payed' => 123.44 
    ], 
    '2' => [ 
    'owed' => 427.76, 
    'payed' => 48.32 
    ] 
]; 

Je me demandais s'il y a une fonction PHP pour le faire, je l'ai essayé avec array_merge_recursive mais il est tout simplement un tableau avec les quatre éléments.

Toute aide serait vraiment appréciée.

+1

quel est le problème dans la boucle traditionnelle? –

+1

Rien de construit sans imbrication/chaînage de quelques fonctions intégrées telles que [array_column] (http://php.net/array_column) avec [array_combine] (http://php.net/array_combine) et similaire. –

+0

@HillaryClintonEmailRemover Je ne sais pas, je pensais qu'il était plus efficace performance sage de le faire en utilisant des fonctions intégrées, merci – DSB

Répondre

1

vous pouvez boucle dans le premier tableau et fusionner le deuxième selon des clés

foreach($array1 as $key => $val) { 
    $mergedArrays[$key] = array('owed' => $val, 'payed' => $array2[$key]); 
} 

sample

+0

il a dit non traditionnel –

+0

Il n'y a rien de traditionnel comme fonction intégrée pour ce – Fabio

+0

exectement ce que je pensais que je ne sais pas pourquoi il veut utiliser des choses complexes pour faire des tâches simples –

1
$array1 = [ 
    '1' => 285.52, 
    '2' => 427.76 
]; 

$array2 = [ 
    '1' => 123.44, 
    '2' => 48.32 
]; 

$final_arr = array_map(function($a1, $a2) { 
    return array(
     'owed' => $a1, 
     'paid' => $a2 
    ); 
}, $array1, $array2); 

$final_arr = array_combine(array_keys($array1), $final_arr); 

var_dump($final_arr); 

D'après le commentaire, il semble que vous êtes à la recherche de fonctions PHP intégré pour faire la tâche pour vous plutôt que d'aller pour la boucle traditionnelle. Mais la méthode de bouclage fournie par Fabio est la méthode la plus simple que vous puissiez utiliser sans aucune autre approche compliquée. J'ai fait de mon mieux pour vous fournir la solution en utilisant les fonctions PHP de base. J'espère que vous êtes content!