3v4l.org

run code in 300+ PHP versions simultaneously
<?php $fonts = [ [ 'family' => 'Abril Fatface', 'weight' => 'regular', 'charset' => 'latin,latin-ext' ], [ 'family' => 'Akronim', 'weight' => 'regular', 'charset' => 'latin' ], [ 'family' => 'Akronim', 'weight' => 'regular, bold', 'charset' => 'latin' ], [ 'family' => 'Akronim', 'weight' => 'regular', 'charset' => 'latin,latin-ext' ], [ 'family' => 'Acme', 'weight' => 'regular', 'charset' => 'latin' ] ]; $result = []; foreach ($fonts as $row) { $row['weight'] = array_flip(preg_split('~, ?~', $row['weight'], 0, PREG_SPLIT_NO_EMPTY)); $row['charset'] = array_flip(preg_split('~, ?~', $row['charset'], 0, PREG_SPLIT_NO_EMPTY)); if (!isset($result[$row['family']])) { $result[$row['family']] = $row; } else { $result[$row['family']]['weight'] += $row['weight']; $result[$row['family']]['charset'] += $row['charset']; } } foreach ($result as &$row) { $row['weight'] = implode(',', array_keys($row['weight'])); $row['charset'] = implode(',', array_keys($row['charset'])); } var_export(array_values($result));
Output for git.master, git.master_jit, rfc.property-hooks
array ( 0 => array ( 'family' => 'Abril Fatface', 'weight' => 'regular', 'charset' => 'latin,latin-ext', ), 1 => array ( 'family' => 'Akronim', 'weight' => 'regular,bold', 'charset' => 'latin,latin-ext', ), 2 => array ( 'family' => 'Acme', 'weight' => 'regular', 'charset' => 'latin', ), )

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:
151.08 ms | 406 KiB | 5 Q