Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用math获得每个文件夹X数量的文件?_Php_Math - Fatal编程技术网

Php 如何使用math获得每个文件夹X数量的文件?

Php 如何使用math获得每个文件夹X数量的文件?,php,math,Php,Math,事实上,我已经做了,大约两年前我做了这个数学方程式,现在我很难理解它 基本上,我使用它是为了当用户将照片上传到我的网站时,我可以用每个文件夹中的X张照片来平衡它们 这给了我类似于1/11/2 1/3 1/4--1/10 2/1 2/2 2/3之类的东西,但我需要修改它,使其深入3个文件夹,每个文件夹应该有1-9或1-10的限制,然后它会将该数字增加到下一个 因此,如果在我下面的函数中输入足够大的数字,结果是3/10,那么当达到正确的对象数时,它将上升到4/1,然后当成千上万的对象再次经过时,它将

事实上,我已经做了,大约两年前我做了这个数学方程式,现在我很难理解它

基本上,我使用它是为了当用户将照片上传到我的网站时,我可以用每个文件夹中的X张照片来平衡它们

这给了我类似于1/11/2 1/3 1/4--1/10 2/1 2/2 2/3之类的东西,但我需要修改它,使其深入3个文件夹,每个文件夹应该有1-9或1-10的限制,然后它会将该数字增加到下一个

因此,如果在我下面的函数中输入足够大的数字,结果是3/10,那么当达到正确的对象数时,它将上升到4/1,然后当成千上万的对象再次经过时,它将上升到4/2。我想做的是让它有3个数字/级别深3/10/2会变成3/10/3当它达到3/10/10时会变成4/1/14/1/2 4/1/3当第三名达到10时会变成4/2/1

<?PHP
function uploadfolder($x) { 
  $dir = floor($x/18001) + 1;
  $sdir = ceil($x/2000) % 9;
  return "$dir/$sdir";
}
?>

2年前,我花了很多时间让它在两个级别的深度上完成这项工作,我只是有点幸运,现在回想起来,我有点困惑它似乎大致是这样做的:

它将使用行将2000张图片打包到子目录0..8中

 $sdir = ceil($x/2000) % 9
详细说明:2000美元与x美元的比例是多少。当您使用模9将其限制为9个子目录时,您将再次将18001张照片放入子目录0

因此,使用18001作为上限,上限会发生变化。1..18000中的所有照片都进入目录1。+1只是将间隔从1开始移动。这就是路线

$dir = floor($x/18001) + 1;
现在,您可以像这样对3级伪代码进行操作,因为我不知道PHP:

function uploadfolder($x) {
  $numOfPics = 2000;
  $numOfFolders = 9;

  $topdir = ceil($x / ($numOfPics * $numOfFolders * $numOfFolders));
  $middir = floor($x / ($numOfPics * $numOfFolders)) % $numOfFolders + 1;
  $botdir = (floor($x / $numOfPics) % $numOfFolders) + 1;
  return "$topdir/$middir/$botdir";
}

它似乎大致做到了这一点:

它将使用行将2000张图片打包到子目录0..8中

 $sdir = ceil($x/2000) % 9
详细说明:2000美元与x美元的比例是多少。当您使用模9将其限制为9个子目录时,您将再次将18001张照片放入子目录0

因此,使用18001作为上限,上限会发生变化。1..18000中的所有照片都进入目录1。+1只是将间隔从1开始移动。这就是路线

$dir = floor($x/18001) + 1;
现在,您可以像这样对3级伪代码进行操作,因为我不知道PHP:

function uploadfolder($x) {
  $numOfPics = 2000;
  $numOfFolders = 9;

  $topdir = ceil($x / ($numOfPics * $numOfFolders * $numOfFolders));
  $middir = floor($x / ($numOfPics * $numOfFolders)) % $numOfFolders + 1;
  $botdir = (floor($x / $numOfPics) % $numOfFolders) + 1;
  return "$topdir/$middir/$botdir";
}

这就是为什么你总是评论你的代码!这是真的,我只是从一开始就没有真正理解数学部分,只是运气好,它按照我想要的方式工作,这就是为什么你总是评论你的代码!这是真的,我只是从一开始就没有真正理解数学部分,只是运气好,它也按照我想要的方式工作