我有一本词典,其中键和值都是字符串。我想打印每个键值对在它自己的行上,键左对齐,值右对齐。
Key1 Test
Key2 BlahBlah
等等...
在PHP中执行此操作的最佳方法是什么?也许是一个聪明的方法来处理printf?
答案 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);
}