3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php $packageColumns = array( 'SequenceNumber' => 1, 'GroupPackageCount' => 1, 'Weight' => array( 'Value' => array('pkg_weight' => 2), 'Units' => 'LB' ), 'Dimensions' => array( 'Length' => array('pkg_length' => 6), 'Width' => array('pkg_width' => 5), 'Height' => array('pkg_height' => 3), 'Units' => 'IN' ) ); $package = array( 'pkg_weight' => 96, 'pkg_height' => 0, 'pkg_width' => 0, 'pkg_length' => 0 ); $newPackage = array(); foreach($packageColumns as $col => $def) { if(is_array($def)) { $newPackage[$col] = array(); foreach($def as $k => $default) { if(is_array($default)) { $key = key($default); $defaultValue = $default[$key]; } else { $key = $k; $defaultValue = $default; } if(isset($package[$key])) { $newPackage[$col][$k] = $package[$key]; } else if(isset($newPackage[$col][$k])) { continue; } else { $newPackage[$col][$k] = $defaultValue; } } } else { if(isset($package[$col])) { $newPackage[$col] = $package[$col]; } else if(isset($newPackage[$col])) { continue; } else { $newPackage[$col] = $def; } } } echo '<pre>'; print_r($newPackage); echo '</pre>';
Output for 4.3.0 - 7.2.0
<pre>Array ( [SequenceNumber] => 1 [GroupPackageCount] => 1 [Weight] => Array ( [Value] => 96 [Units] => LB ) [Dimensions] => Array ( [Length] => 0 [Width] => 0 [Height] => 0 [Units] => IN ) ) </pre>