Remove Common Indent

Remove the common leading whitespace from all lines in a multi-line string, normalizing indentation.

Code

General
$lines = explode("\n", $s);
$nonEmpty = array_filter($lines, fn($l) => trim($l) !== '');
$minIndent = min(array_map(fn($l) => strlen($l) - strlen(ltrim($l)), $nonEmpty)) ?: 0;
return implode("\n", array_map(fn($l) => substr($l, $minIndent), $lines));

Parameters

Indented multi-line string

Server

More PHP Snippets