Je souhaite fusionner deux tableaux en fonction de valeurs de colonne communes. Voici mes 2 tableaux :
$array1 = [ [ "total_process_per_category" => "6", "category_id" => "1" ], [ "total_process_per_category" => "2", "category_id" => "2" ] ]; $array2 = [ [ "total_pinned_per_category" => "16", "category_id" => "1" ], [ "total_pinned_per_category" => "4", "category_id" => "2" ] ];
Je souhaite fusionner ces tableaux pour obtenir :
array ( 0 => array ( 'total_process_per_category' => '6', 'total_pinned_per_category' => '16', 'category_id' => '1', ), 1 => array ( 'total_process_per_category' => '2', 'total_pinned_per_category' => '4', 'category_id' => '2', ), )
Comme vous pouvez le voir, les deux tableaux ont la même clé ['category_id'] et la même valeur.
Je souhaite obtenir un résultat où ['total_process_per_category'] et ['total_pinned_per_category'] sont placés ensemble sur le même tableau en fonction de leurs valeurs ['category_id'].
J'ai obtenu ceci en utilisant un foreach imbriqué mais ça a l'air moche. S'il vous plaît dites-moi une meilleure façon.
Cela peut être fait sans "foreach imbriqué laid". Fusionnez les deux tableaux avant d'itérer, en les regroupant par valeurcategory_id. Une fois la boucle terminée, utilisez array_values() pour effacer les clés temporaires de premier niveau.
Code : (Démo) (array_reduce() version)
Sortie :
Vous pouvez essayer
array_reduce
: