以列形式显示php cli输出

以列形式显示php cli输出,php,Php,我想在php cli脚本中以列形式输出长度可变的数据 例如: $pepole = Array( 'Mirco Dellarovere' => 'Artista', 'Nino Pepe' => 'Attore', 'Zoe Yan' => 'Futurista', 'Mino' => 'Elettricista' ); foreach($pepole as $name => $work) { echo "$name\t$work\n";

我想在php cli脚本中以列形式输出长度可变的数据

例如:

$pepole = Array(
  'Mirco Dellarovere' => 'Artista',
  'Nino Pepe' => 'Attore',
  'Zoe Yan' => 'Futurista',
  'Mino' => 'Elettricista'
);

foreach($pepole as $name => $work)
  {
  echo "$name\t$work\n";
  }
输出将是

Mirco Dellarovere       Artista
Nino Pepe       Attore
Zoe Yan Futurista
Mino    Elettricista
但我想这样

Mirco Dellarovere       Artista
Nino Pepe               Attore
Zoe Yan                 Futurista
Mino                    Elettricista
怎么做

:)谢谢

您可以
$name
确保标准字符数。只需确保字符数(20)等于或大于最长名称的长度:

echo str_pad( $name, 20 ) . $work . "\n";
标签/垫子很无聊

使用带有预定义$mask的sprintf。您可以指定列宽和对齐方式

在下面的示例中,20是第一列的宽度。如果要调整对齐方式,可以在列中添加-或+,如“%-20s%s\n”。有许多格式化选项。看


您需要使用足够的制表符来说明每列中尽可能宽的文本。如果没有其他内容,请尝试输出
\t\t\t
,而不仅仅是
\t
。谢谢乔治·康明斯,我认为你的是一个很好的解决方案。。。谢谢
$mask = "%20s %s\n";
foreach($pepole as $name => $work)
{
  echo sprintf($mask, $name, $work);
}