数组中的数组用于保存文件名

时间:2014-12-11 11:39:34

标签: php arrays

这是一个网站的首页,它应该在最顶部显示最新/最新的帖子,当你向下滚动并转到下一页时,帖子会变老。

有一个文件夹包含许多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);

到目前为止,我设法让自己感到困惑。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

以下代码生成多维$ 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

等等。代码(未包含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++;
}