文件是字体,他们常常有像FontName-type.extension这样的名字
我把它们放在一个文件夹中,我目前有这个功能:
function random_font($dir = 'fonts')
{
$fonts = glob($dir . '/*');
return $fonts[devurandom_rand(0, count($fonts) - 1)];
}
然而,目标是尽可能获得代表性的样本,并且共享FontName的字体彼此更加相似。
我的问题是随机选择字体,以便共享FontName的字体也分享被选中的概率。
答案 0 :(得分:1)
首先,创建一个将字体名称映射到其文件路径的数组。例如,您的原始$fonts
可能是:
// You already have this array from the glob function.
$fonts = [
'Helvetica',
'Helvetica-Bold',
'Times New Roman',
]
然后,遍历$fonts
数组以创建$fontNames
数组。 $fontNames
数组将字体名称映射到文件名。在此示例中,$fontNames
数组将为:
$fontNames = [
'Helvetica' => ['Helvetica', 'Helvetica-Bold'],
'Times New Roman' => ['Times New Roman'],
];
然后,您可以从$fontNames
中选择一个随机密钥,然后选择一个随机值。