function convertMatrixToString($matrix) {
$sizesarr = array_fill(0, count($matrix[0]), 0);
// Determine the maximum width of each column
foreach ($matrix as $row) {
foreach ($row as $i => $val) {
$str = (string) $val;
if ($sizesarr[$i] < strlen($str)) {
$sizesarr[$i] = strlen($str);
}
}
}
// Format matrix into a properly spaced string
$result = array_map(function($row) use ($sizesarr) {
return implode(' ', array_map(function($str, $i) use ($sizesarr) {
return str_pad($str, $sizesarr[$i]);
}, array_map('strval', $row), array_keys($row)));
}, $matrix);
return implode("\n", $result);
}
$matrix = [
[4, 7, 9, 18, 29, 0],
[1, 9, 18, 99, 4, 3],
[9, 17, 89, 2, 7, 5],
[19, 49, 6, 1, 9, 8],
[29, 4, 7, 9, 18, 6]
];
echo convertMatrixToString($matrix);
/*
run:
4 7 9 18 29 0
1 9 18 99 4 3
9 17 89 2 7 5
19 49 6 1 9 8
29 4 7 9 18 6
*/