Php 从文件夹中随机选择一个文件,根据名称分配概率
这些文件是字体,它们的名称通常为FontName-type.extension 我将它们放在一个文件夹中,目前我有以下功能:Php 从文件夹中随机选择一个文件,根据名称分配概率,php,regex,random,glob,random-sample,Php,Regex,Random,Glob,Random Sample,这些文件是字体,它们的名称通常为FontName-type.extension 我将它们放在一个文件夹中,目前我有以下功能: function random_font($dir = 'fonts') { $fonts = glob($dir . '/*'); return $fonts[devurandom_rand(0, count($fonts) - 1)]; } 然而,我们的目标是获得尽可能具有代表性的样本,共享字体名的字体比不共享字体名的字体更相似 我的问题是随机选择字体,
function random_font($dir = 'fonts')
{
$fonts = glob($dir . '/*');
return $fonts[devurandom_rand(0, count($fonts) - 1)];
}
然而,我们的目标是获得尽可能具有代表性的样本,共享字体名的字体比不共享字体名的字体更相似
我的问题是随机选择字体,这样共享FontName的字体也有被选择的可能性。首先,创建一个数组,将字体名称映射到它们的文件路径。例如,您的原始
$fonts
可能是:
// You already have this array from the glob function.
$fonts = [
'Helvetica',
'Helvetica-Bold',
'Times New Roman',
]
然后,在$fonts
数组中循环以创建$FONTNAME
数组。$fontNames
数组将字体名称映射到文件名。在本例中,$fontNames
数组将是:
$fontNames = [
'Helvetica' => ['Helvetica', 'Helvetica-Bold'],
'Times New Roman' => ['Times New Roman'],
];
然后,您可以从$fontNames
中选择一个随机键,然后依次选择一个随机值