3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array85 = array( 0=> array( "id"=> "15", "estilo"=> "0053", "codigo"=> "4444444.23", "color"=> "verde", "punto"=> "23" , "material"=> "vacuno" , "precio"=> "130" , "stock_vendido"=> (2), "total"=> "260" , ), 1=> array( "id"=> "16" , "estilo"=> "0053" , "codigo"=> "4444444.25" , "color"=> "verde" , "punto"=> "25" , "material"=> "vacuno" , "precio"=> "130" , "stock_vendido"=> (1) , "total"=> "130" , ), 2=> array( "id"=> "10" , "estilo"=> "0058" , "codigo"=>"1232323.23" , "color"=> "rojo" , "punto"=>"23" , "material"=> "sintetico" , "precio"=> "2.8" , "stock_vendido"=> (3) , "total"=> "8.4" ) ); $report = []; foreach($array85 as $el){ $keys = ['stock_vendido', 'punto']; $size = array_filter($el, function($v, $k) use ($keys) { return in_array($k, $keys); }, ARRAY_FILTER_USE_BOTH); if (!isset($report[$el['estilo']])) { $shoe = array_filter($el, function($v, $k) use ($keys) { return !in_array($k, $keys); }, ARRAY_FILTER_USE_BOTH); unset($shoe['total']); $report[$el['estilo']] = $shoe; $report[$el['estilo']]['tallajes'] = []; } $report[$el['estilo']]['tallajes'][$size['punto']] = $size['stock_vendido']; } for($i = 22 ; $i <= 32; $i = $i + 0.5) $sizes[] = strval($i); echo "<table><thead><tr><td></td>"; foreach ($sizes as $size) { echo "<td>$size</td>"; } echo "<td>Precio Unitario</td><td>Total</td></tr></thead><tbody>"; foreach($report as $sales) { $desc = implode('-', [$sales['estilo'], $sales['material'], $sales['color']]); $total_items = 0; echo "<tr><td>$desc</td>"; foreach ($sizes as $size) { if (array_key_exists(strval($size), $sales['tallajes'])) { $num = $sales['tallajes'][$size]; $total_items += $num; } else { $num = ''; } echo "<td>$num</td>"; } echo "<td>" . $sales['precio'] . "</td><td>" . $sales['precio'] * $total_items . "</td></tr>"; } echo "</tbody></table>";
Output for 7.1.25 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
<table><thead><tr><td></td><td>22</td><td>22.5</td><td>23</td><td>23.5</td><td>24</td><td>24.5</td><td>25</td><td>25.5</td><td>26</td><td>26.5</td><td>27</td><td>27.5</td><td>28</td><td>28.5</td><td>29</td><td>29.5</td><td>30</td><td>30.5</td><td>31</td><td>31.5</td><td>32</td><td>Precio Unitario</td><td>Total</td></tr></thead><tbody><tr><td>0053-vacuno-verde</td><td></td><td></td><td>2</td><td></td><td></td><td></td><td>1</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>130</td><td>390</td></tr><tr><td>0058-sintetico-rojo</td><td></td><td></td><td>3</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td>2.8</td><td>8.4</td></tr></tbody></table>

preferences:
188.58 ms | 405 KiB | 181 Q