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 git.master, git.master_jit, rfc.property-hooks
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 ( )

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:
22.84 ms | 402 KiB | 8 Q