在列中显示php-cli输出

时间:2011-07-06 15:52:46

标签: 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";
  }

输出

Mirco Dellarovere       Artista
Nino Pepe       Attore
Zoe Yan Futurista
Mino    Elettricista

但我希望这样

Mirco Dellarovere       Artista
Nino Pepe               Attore
Zoe Yan                 Futurista
Mino                    Elettricista

怎么样?

:)谢谢

2 个答案:

答案 0 :(得分:15)

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

echo str_pad( $name, 20 ) . $work . "\n";

答案 1 :(得分:2)

标签/垫无聊。

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

在下面的示例中,20是第一列的宽度。如果要调整对齐方式,可以在“%-20s%s \ n”之类的列中添加-或+。有许多格式选项。参见http://php.net/manual/en/function.sprintf.php

$mask = "%20s %s\n";
foreach($pepole as $name => $work)
{
  echo sprintf($mask, $name, $work);
}