3v4l.org

run code in 300+ PHP versions simultaneously
<?php $lexer = [ // will be normalized from => to 'Vorname' => 'Vorname', 'Nachname' => 'Nachname', 'Name' => 'Nachname', ]; $validator = [ // must be present 'Vorname', 'Nachname', ]; $data = [ // raw input 'Vorname' => 'Max', 'Name' => 'Mustermann', 'Alter' => '32', ]; function normalize($data, $lexer){ $result = []; foreach($data as $key => $val){ if(isset($lexer[$key])){ $result[$lexer[$key]] = $val; } } return $result; } echo 'translation '; print_r($lexer); echo 'validation '; print_r($validator); echo 'raw '; print_r($data); echo 'normalized '; $normalized = normalize($data, $lexer); print_r($normalized); echo 'diff raw '; print_r(array_diff(array_keys($data), $validator)); echo 'diff normalized '; print_r(array_diff(array_keys($normalized), $validator));
Output for 5.5.0 - 5.5.35, 5.6.0 - 5.6.28, 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.6
translation Array ( [Vorname] => Vorname [Nachname] => Nachname [Name] => Nachname ) validation Array ( [0] => Vorname [1] => Nachname ) raw Array ( [Vorname] => Max [Name] => Mustermann [Alter] => 32 ) normalized Array ( [Vorname] => Max [Nachname] => Mustermann ) diff raw Array ( [1] => Name [2] => Alter ) diff normalized Array ( )

preferences:
191.94 ms | 405 KiB | 227 Q