php中数组的随机文件
我已经成功地制作了一个php脚本,它使用文件夹中的文件创建了一个数组 问题是我想让它从数组中随机抓取一个文件。当我手动设置目录中存在的文件数时,它可以正常工作,而不是当我试图计算数组的大小时。这是我想到的php中数组的随机文件,php,Php,我已经成功地制作了一个php脚本,它使用文件夹中的文件创建了一个数组 问题是我想让它从数组中随机抓取一个文件。当我手动设置目录中存在的文件数时,它可以正常工作,而不是当我试图计算数组的大小时。这是我想到的 $dir = 'MemeDatabase'; $fileNames = array(); if(is_dir($dir)){ $handle = opendir($dir); while(false !== ($file = readdir($handle))){
$dir = 'MemeDatabase';
$fileNames = array();
if(is_dir($dir)){
$handle = opendir($dir);
while(false !== ($file = readdir($handle))){
if(is_file($dir.'/'.$file) && is_readable($dir.'/'.$file)){
$fileNames[] = $file;
}
}
closedir($handle);
int count($fileNames);
$fileNames = array_reverse($fileNames);
$rand_keys = array_rand($fileNames, $count);
echo $fileNames[$rand_keys[0]] . "\n";
print_r($fileNames);
} else {
echo "<p>There is an directory read issue</p>";
}
$dir='MemeDatabase';
$fileNames=array();
if(is_dir($dir)){
$handle=opendir($dir);
while(false!=($file=readdir($handle))){
if(is_file($dir./'.$file)&&is_可读($dir./'.$file)){
$fileNames[]=$file;
}
}
closedir($handle);
整数计数(文件名);
$fileNames=array\u reverse($fileNames);
$rand\u keys=array\u rand($filename,$count);
echo$fileNames[$rand\u keys[0]]。“\n”;
打印(文件名);
}否则{
echo“存在目录读取问题””;
}
您可以删除部分代码,只需使用默认值,即从阵列中仅拾取一项
closedir($handle);
// int count($fileNames); // This is an error anyway
// $fileNames = array_reverse($fileNames); // Not needed
// $rand_keys = array_rand($fileNames, $count);
$fileName = $fileNames[array_rand($fileNames)];
echo $fileName;
先将数组洗牌一次,然后选择想要的数据。只需使用
$fileName=array\u rand($fileName)
行int count($fileName)不需要code>或array\u reverse()
。和$rand\u keys=array\u rand($filename,$count)
是错误的,如果您只想返回一个键,请使用$rand\u keys=array\u rand($filename,1)代码>这很有效,谢谢!冷却结束后,我将接受答案:)