3v4l.org

run code in 300+ PHP versions simultaneously
<?php $defaults = [ 'public' => 0, 'private' => 0, 'secret' => 0, ]; $db = [ 'User1' => [ 'public' => 1, 'private' => 1, 'secret' => 1, ], 'User2' => [ 'public' => 1, 'private' => 0, 'secret' => 0, ], 'User3' => [ 'public' => 0, 'private' => 1, 'secret' => 1, ], ]; $form = [ 'User1' => [ 'public' => 1, 'private' => 1, ], 'User2' => [ 'public' => 1, 'secret' => 1, ], 'User3' => [ 'private' => 1, 'secret' => 1, ], ]; $result = []; foreach ($form as $user => $row) { $new = array_replace($defaults, $row); if ($db[$user] != $new) { $result[$user] = $new; } } var_export($result);
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array ( 'User1' => array ( 'public' => 1, 'private' => 1, 'secret' => 0, ), 'User2' => array ( 'public' => 1, 'private' => 0, 'secret' => 1, ), )

preferences:
83.76 ms | 402 KiB | 62 Q