3v4l.org

run code in 300+ PHP versions simultaneously
<?php $result = array( 'Date 1' => array ( 'Object 1 ' => array ( 'Field 1' => "Value 1", 'Field 2' => "Value 2", 'Field 3' => "Value 3", ), ), 'Date 2' => array ( 'Object 1 in Date 2' => array ( 'Field 1' => "Value 1", 'Field 2' => "Value 2", ), 'Object 2 in Date 2' => array ( 'Field 1' => "Value 1", 'Field 2' => "Value 2", 'Field 3' => "Value 3", ), ), ); function count_childs($parent_array,$total = 0) { if(is_array($parent_array)) { foreach ($parent_array as $key => $value) { if(is_array($value)){ $total += count($value); count_childs($value,$total); } else $total += 1; } } return $total; } $firstField =false; $first = false; echo '<div>'; echo '<table id="r" border=1>'; echo '<tr>'; echo '<th>Date</th>'; echo '<th>Object Type</th>'; echo '<th>Field</th>'; echo '<th>Count</th>'; echo '</tr>'; foreach ($result as $key=>$value){ echo "<tr>"; $date_rowspan = count_childs($value); echo "<td rowspan= $date_rowspan>$key</td>"; foreach ($value as $key1 => $value1) { $obj_rowspan = count_childs($value1); echo "<td rowspan= $obj_rowspan>$key1</td>"; echo $first_row = true; foreach ($value1 as $key2 => $value2) { if($first_row){ echo "<td>$key2</td><td>$value2</td></tr>"; $first_row = false; } else echo "<td>$key2</td><td>$value2</td><tr>"; } } echo "</tr>"; } echo '</table>';
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.30, 7.0.0 - 7.0.20, 7.1.0 - 7.1.25, 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.4, 8.3.6
<div><table id="r" border=1><tr><th>Date</th><th>Object Type</th><th>Field</th><th>Count</th></tr><tr><td rowspan= 3>Date 1</td><td rowspan= 3>Object 1 </td>1<td>Field 1</td><td>Value 1</td></tr><td>Field 2</td><td>Value 2</td><tr><td>Field 3</td><td>Value 3</td><tr></tr><tr><td rowspan= 5>Date 2</td><td rowspan= 2>Object 1 in Date 2</td>1<td>Field 1</td><td>Value 1</td></tr><td>Field 2</td><td>Value 2</td><tr><td rowspan= 3>Object 2 in Date 2</td>1<td>Field 1</td><td>Value 1</td></tr><td>Field 2</td><td>Value 2</td><tr><td>Field 3</td><td>Value 3</td><tr></tr></table>
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 <div><table id="r" border=1><tr><th>Date</th><th>Object Type</th><th>Field</th><th>Count</th></tr><tr><td rowspan= 3>Date 1</td><td rowspan= 3>Object 1 </td>1<td>Field 1</td><td>Value 1</td></tr><td>Field 2</td><td>Value 2</td><tr><td>Field 3</td><td>Value 3</td><tr></tr><tr><td rowspan= 5>Date 2</td><td rowspan= 2>Object 1 in Date 2</td>1<td>Field 1</td><td>Value 1</td></tr><td>Field 2</td><td>Value 2</td><tr><td rowspan= 3>Object 2 in Date 2</td>1<td>Field 1</td><td>Value 1</td></tr><td>Field 2</td><td>Value 2</td><tr><td>Field 3</td><td>Value 3</td><tr></tr></table>

preferences:
308.39 ms | 403 KiB | 385 Q