3v4l.org

run code in 300+ PHP versions simultaneously
<?php function fill_packages( $packages ) { $overrun = 42; // Items in cart $cost = 0; $filled = array(); $quantities = array(); foreach( $packages as $the_package ){ $delivers = floor( $overrun / $the_package['contain'] ); if( ! $delivers ) { continue; } $filled[$the_package['name']] = $delivers; $overrun = $overrun - ( $delivers * $the_package['contain'] ); $cost = $cost + ( $delivers * $the_package['cost'] ); } if( $overrun ) { return 'Error, Overrun of ' . $overrun . '!'; } return array( 'packages' => $filled, 'cost' => $cost, ); } /* Test it! */ print_r( fill_packages( array( array( 'name' => '18er', 'contain' => 18, 'cost' => 5 ), array( 'name' => '12er', 'contain' => 12, 'cost' => 5 ), array( 'name' => '6er', 'contain' => 6, 'cost' => 8 ), ) ) );
Output for 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
Array ( [packages] => Array ( [18er] => 2 [6er] => 1 ) [cost] => 18 )

preferences:
157.83 ms | 407 KiB | 5 Q