Tengo una matriz como esta.
array:3 [▼ 0 => array:2 [▼ "id" => "1039" "total" => 2.3 ] 1 => array:2 [▼ "id" => "1039" "total" => -3.0 ] 2 => array:2 [▼ "id" => "10007" "total" => 15.5 ] ]Necesito "total" para el mismo "id" en la misma matriz. por ejemplo, para "id" = 1039, la matriz debe ser
[2.3, -3.0]Para "id" = 10007, la matriz debe ser
[15.5]Mi matriz deseada es
[ [2.3, -3.0], [15.5] ]Puede recorrer su matriz y configurarla en otra matriz de esta manera:
$array = [ ['id' => 1, 'value' => 2], ['id' => 1, 'value' => 3], ['id' => 2, 'value' => 5], ]; $temp = []; foreach($array as $element){ if(!isset($temp[$element['id']])){ $temp[$element['id']] = []; } $temp[$element['id']][] = $element['value']; } var_dump($temp);Realmente quiere que estén codificados por la ID de las matrices.
$arr = [ ["id" => "1039", "total" => 2.3],["id" => "1039","total" => -3.0],["id" => "10007","total" => 15.5]]; $total = []; foreach($arr as $item) { $total[$item['id']][] = $item['total']; }eso regresará
array:2 [ 1039 => array:2 [ 0 => 2.3 1 => -3.0 ] 10007 => array:1 [ 0 => 15.5 ] ]