3v4l.org

run code in 300+ PHP versions simultaneously
<?php $reporting_data = array( 'category_name' => '33287*100*prescription*1,32457*1250*lab*1,32459*1500*lab*1,32460*400*lab*1,32461*600*lab*1,32468*950*lab*1,32470*950*lab*1,33291*2500*lab*1,33292*2500*lab*1,47516*2000*lab*1,49209*0*lab*1,56835*2400*lab*1,56836*2400*lab*1', 'patient' => '28370', 'date' => 1643030497, 'ref' => '371', ); // Create array of objects $reporting_data_as_objects[] = (object)$reporting_data; $results = []; foreach ($reporting_data_as_objects as &$obj) { // Setup base data that is shared across all items $obj->reception_data_sum = 0; $obj->references_data_sum = 0; $obj->actual_price = 0; $category_names = explode(',', $obj->category_name); // Loop over the comma-delimited parts of category_name foreach ($category_names as $category_name) { // Clone our template object $tmp = clone $obj; // The second item of the asterisk-delimted field is the price // We used $_ to indicate that we aren't interested in the first item. list($_, $sale_value) = explode('*', $category_name); // Set object-specific fields on our clone $tmp->category_name = $category_name; $tmp->actual_price = (int)$sale_value; // Add the clone to the array $results[] = $tmp; } } // Always unset by-ref variables of a foreach unset($obj); print_r($results);
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [0] => stdClass Object ( [category_name] => 33287*100*prescription*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 100 ) [1] => stdClass Object ( [category_name] => 32457*1250*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 1250 ) [2] => stdClass Object ( [category_name] => 32459*1500*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 1500 ) [3] => stdClass Object ( [category_name] => 32460*400*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 400 ) [4] => stdClass Object ( [category_name] => 32461*600*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 600 ) [5] => stdClass Object ( [category_name] => 32468*950*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 950 ) [6] => stdClass Object ( [category_name] => 32470*950*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 950 ) [7] => stdClass Object ( [category_name] => 33291*2500*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 2500 ) [8] => stdClass Object ( [category_name] => 33292*2500*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 2500 ) [9] => stdClass Object ( [category_name] => 47516*2000*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 2000 ) [10] => stdClass Object ( [category_name] => 49209*0*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 0 ) [11] => stdClass Object ( [category_name] => 56835*2400*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 2400 ) [12] => stdClass Object ( [category_name] => 56836*2400*lab*1 [patient] => 28370 [date] => 1643030497 [ref] => 371 [reception_data_sum] => 0 [references_data_sum] => 0 [actual_price] => 2400 ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
146.12 ms | 417 KiB | 5 Q