function coder_replace_indent_multiline_array in Coder 6
Same name and namespace in other branches
- 5.2 scripts/coder_format/coder_format.inc \coder_replace_indent_multiline_array()
- 6.2 scripts/coder_format/coder_format.inc \coder_replace_indent_multiline_array()
Related topics
File
- scripts/coder_format/coder_format.inc, line 1313
Code
function coder_replace_indent_multiline_array($matches) {
preg_match_all('/^(\\s*)(?:(([\'"]).+?\\3|\\.+?)\\s*=>\\s*(.+?),?|\\),)\\s*?$/mi', $matches[0], $vars, PREG_SET_ORDER);
$maxlengths = array();
foreach ($vars as $var) {
list(, $indent, $key) = $var;
if (!isset($maxlengths[$indent])) {
$maxlengths[$indent] = 0;
}
if (($t = strlen($key)) > $maxlengths[$indent]) {
$maxlengths[$indent] = $t;
}
}
$return = '';
foreach ($vars as $var) {
list(, $indent, $key, , $value) = $var;
if ($key === null) {
$return .= "{$indent}),\n";
continue;
}
$spaces = str_repeat(' ', $maxlengths[$indent] - strlen($key));
if ($value !== 'array(') {
$comma = ',';
}
else {
$comma = '';
}
$return .= "{$indent}{$key}{$spaces} => {$value}{$comma}\n";
}
$return = rtrim($return, "\n");
return $return;
}