3v4l.org

run code in 300+ PHP versions simultaneously
<?php function hydratePath(array $result, ?string $path): array { if (sscanf($path ?? '', '%[^/]/%s', $first, $rest) < 2) { $result[] = $first ?? $path; } else { $result[$first] ??= []; $result[$first] = (__FUNCTION__)($result[$first], $rest); } return $result; } $array = [ 'invoice/products/data/item1', '', null, 'invoice/products/data/item2', 'invoice/products/filename', 'invoice/products/data/item2', 'foo/bar/baz', '', 'aaa/bbb' ]; var_export(array_reduce($array, "hydratePath", []));
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0
array ( 'invoice' => array ( 'products' => array ( 'data' => array ( 0 => 'item1', 1 => 'item2', 2 => 'item2', ), 0 => 'filename', ), ), 0 => '', 1 => NULL, 'foo' => array ( 'bar' => array ( 0 => 'baz', ), ), 2 => '', 'aaa' => array ( 0 => 'bbb', ), )
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
92.04 ms | 407 KiB | 5 Q