<?php
function getPath($id)
{
if ($id < 100) return "0".DIRECTORY_SEPARATOR;
$id = str_pad($id,strlen($id)+(3-strlen($id)%3),"0",STR_PAD_LEFT);
$in = array_map(create_function('$x','return ($x >= 1) ? ltrim($x,\'0\') : "0";'),str_split($id,3));
array_pop($in);
$in = array_reverse($in);
return rtrim(implode(DIRECTORY_SEPARATOR,$in),DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
}
printf("getPath(%d) = %s\n",3,getPath(3));
printf("getPath(%d) = %s\n",300,getPath(300));
printf("getPath(%d) = %s\n",3000,getPath(3000));
printf("getPath(%d) = %s\n",3000000,getPath(3000000));
printf("getPath(%s) = %s\n",3000000000,getPath(3000000000));
for ($i=0;$i < 10;$i++)
{
$id = rand();
printf("getPath(%d) = %s\n",$id,getPath($id));
}