Python基于字典的字符串格式化如下:
person = {'name':'bruce', 'number':'56778'}
print("%(name)'s phone number is %(number)" % person)
使用PHP实现类似功能:
function sprintf_array($string, $array)
{
$keys = array_keys($array);
$keysmap = array_flip($keys);
$values = array_values($array);
while (preg_match('/%\(([a-zA-Z0-9_-]+)\)/', $string, $m))
{
if (!isset($keysmap[$m[1]]))
{
echo "No key $m[1]\n";
return false;
}
$string = str_replace($m[0], '%' . ($keysmap[$m[1]] + 1) . '$', $string);
}
array_unshift($values, $string);
var_dump($values);
return call_user_func_array('sprintf', $values);
}
echo sprintf_array("%(name)s's phone number is %(number)08d", array('name' => 'bruce', 'number' => '56778'));