用printf正确辩护

时间:2011-09-11 20:02:28

标签: php printf

我有一本词典,其中键和值都是字符串。我想打印每个键值对在它自己的行上,键左对齐,值右对齐。

Key1        Test
Key2    BlahBlah

等等...

在PHP中执行此操作的最佳方法是什么?也许是一个聪明的方法来处理printf?

1 个答案:

答案 0 :(得分:8)

试试这个:

printf("%-40s", "Test");

40告诉printf填充字符串,使其占用40个字符(这是填充说明符)。 -告诉右边的填充(这是对齐说明符)。

请参阅conversion specifications documenation

所以,要打印整个数组:

$max_key_length = max(array_map('strlen', array_keys($array)));
$max_value_length = max(array_map('strlen', $array));

foreach($array as $key => $value) {
    printf("%-{$max_key_length}s   %{$max_value_length}s\n", $key, $value);
}

在此处试试:http://codepad.org/ZVDk52ad