0
function GetImages($orderByDate, $start, $end)
{

$container = array();

if ($handle = opendir('uploads')) 
{
    while (false !== ($file = readdir($handle))) 
    {
        if ($file != "." && $file != "..") 
        {
            $filename = 'uploads/' . $file;
            $lastEdit = date("F d Y H:i:s.", filemtime($filename));

            $image = array(
                'fileName' => $file,
                'lastEdit' => $lastEdit
            );

            array_push($container, $image);
        }
    }

    closedir($handle);
} 

if($orderByDate)
{
    function date_compare($a, $b)
    {
        $t1 = strtotime($a['lastEdit']);
        $t2 = strtotime($b['lastEdit']);
        return $t1 - $t2;
    }    
    usort($container, 'date_compare');
}

if(isset($start) && isset($end))
{
    array_slice($container, $start, $end);
}

return $container;

}

echo '<pre>';
var_dump(GetImages(true, 0, 5));
echo '</pre>';

sliceここに行く方法はありませんか?開始値と終了値を渡しても、配列からすべてのレコードを取得します。ありがとう

4

2 に答える 2

0

これの代わりに

    array_slice($container, $start, $end);

あなたは書くべきです

$container = array_slice($container, $start, $end);

そしてそれはよりうまくいくはずです。

于 2012-04-24T22:13:41.070 に答える
0

array_slice は配列を返し、渡された配列を変更しません

$container = array_slice($container, $start, $end);

あなたの問題を解決する必要があります

于 2012-04-24T22:07:16.430 に答える