我有一个字典,键和值都是字符串。我想在左对齐的键和右对齐的值的行上打印每个键值对。

Key1        Test
Key2    BlahBlah

等等...

用PHP做到这一点的最佳方法是什么?也许使用printf的聪明方法?

最佳答案

试试这个:

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

关于php - 用printf进行右对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7380868/

10-11 21:29