Это для первой страницы веб-сайта, на котором должно отображаться новейшее/последнее сообщение на самом верху, когда вы прокручиваете вниз и переходите к следующим страницам, сообщения становятся старше.
Существует папка, содержащая множество файлов ini
с номерами в именах. То, что я пытаюсь сделать, это загрузить все имена сообщений (и только имена, а не их содержимое) в массив, а затем сортировать их по другим массивам. Я думал, возможно, использование многомерного массива было бы хорошей идеей. Например (если я понимаю это право), $usePage[1][2]
будет иметь номер второго сообщения на первой странице. Даже лучший способ сделать это?
Вот соответствующий бит кода:
$ppp = 4;
$totalposts = 0;
$posts = array();
foreach (scandir($postsLoc) as $file) {
if (is_file($postsLoc . "/" . $file)) {
$totalposts++;
array_push($posts, $file);
}
}
natsort($posts);
array_values($posts);
$posts = array_reverse($posts);
print_r($posts);
$currPage = -;
$usePage = array(array());
$done = 0;
for ($i = $totalposts; $i != 0; $i--){
if ($done >= $ppp){
//Next page
$currPage++;
$done = 0;
$usePage[$currPage] = array();
}
$done++;
array_push($usePage[$currPage][$done], $i);
}
print_r($usePage);
До сих пор мне удалось запутать себя.
Спасибо за любую помощь заранее!
приведенный ниже код приводит к мультиразмерному массиву $ postsInPage, первым измерением которого является ссылка на страницу, вторая - сообщения для этой страницы. Затем вы должны будете использовать этот массив, чтобы вытащить соответствующие должности, зависящие от вашего pageId:
Array
(
[1] => Array
(
[0] => .
[1] => ..
[2] => email_20131212_2c7a6.html
[3] => email_20131212_98831.html
)
[2] => Array
(
[0] => errFile_20140110_940ad.txt
[1] => errFile_20140110_2021a.txt
[2] => errFile_20140110_2591c.txt
[3] => errFile_20140110_43280.txt
etc и т.д. Код (не включал проверку is_file)
// load all the posts into an array:
$allPosts = array();
foreach (scandir("temp") as $file) {
$allPosts[] = $file;
}
//sort the array (am making an assumption that $file structure will natsort sensibly
natsort($allPosts);
$allPosts = array_values($allPosts);
//split into posts per page.
$ppp = 4;
$pageId = 1;
$totalposts = 1;
$postsInPage = array();
foreach ($allPosts as $post) {
$postsInPage[$pageId][] = $post;
if (($totalposts % $ppp) == 0) { //i.e. 4 per page
$pageId++;
}
$totalposts++;
}