Я работаю с PHP и хочу отобразить некоторые данные, которые у меня есть, в массиве (из базы данных mysql).Проблема заключается в том, что первый столбец не всегда имеет одинаковую длину, поэтому, хотя некоторые строки, содержащие более короткие строки в первом столбце, хорошо выровнены, в столбцах с более крупными строками второй столбец выравнивается больше вправо.Массив выглядит так:
$array[0][0] = "string0gvmdksd";
$array[0][1] = "42134";
$array[1][0] = "string1fges";
$array[1][1] = "234";
$array[2][0] = "string2gvmdksd sgdfsgdfg gffgdfg";
$array[2][1] = "87342";
$array[3][0] = "string3gffd";
$array[3][1] = "34";
Я думаю о решении.Получение длины более длинной строки в массиве [$ i] [0], затем установка переменной с числом пробелов X и табуляцией в конце (X - более длинная строка), но это не похоже на работу.
Вот мой код:
<code>function addTabs($input) {
$length = 0;
foreach($input as $entry) {
if(strlen($entry[0])>$length) $length = strlen($entry[0]);
}
return str_repeat(" ", $length)."\t";
}
$data = "";
$tabs = addTabs( $array );
foreach( $array as $entry ) {
$data .= $entry[0] . $tabs . $entry[1] . "\n";
}
echo "<pre>$data
";
Но он отображает:
string0gvmdksd 42134
string1fges 234
string2gvmdksd sgdfsgdfg gffgdfg 87342
string3gffd 34
У кого-нибудь есть решение для этого?