Ich möchte zwei Arrays basierend auf gemeinsamen Spaltenwerten zusammenführen. Hier sind meine 2 Arrays:
$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" ] ];
Ich möchte diese Arrays zusammenführen, um Folgendes zu erhalten:
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', ), )
Wie Sie sehen können, haben beide Arrays denselben Schlüssel ['category_id'] und denselben Wert.
Ich möchte ein Ergebnis erhalten, bei dem ['total_process_per_category'] und ['total_pinned_per_category'] basierend auf ihren ['category_id']-Werten zusammen im selben Array platziert werden.
Ich habe das mithilfe von „nested foreach“ erhalten, aber es sieht hässlich aus. Bitte sagen Sie mir einen besseren Weg.
这可以在没有“丑陋的嵌套 foreach”的情况下完成。在迭代之前合并两个数组,按category_id 值进行分组。循环结束后,使用 array_values() 清除临时的一级键。
代码:(演示) (array_reduce() 版本)
输出:
你可以尝试
array_reduce
: