1

YouTubeの動画のリストがあるページがあります。私は以下のように配列を使用し、その後ページの後半で他のいくつかの関数を使用して、ページの下にビデオのタイトルと画面グラブを表示します。このように、下のリストに新しいvidoeを追加するだけで、YouTubeからすべての正しい情報を取得できます。

//exampleX is a youtube video code
$videolist = array(
"example1",
"example2",
"example3",
"example4",
"example5"
);

時間の経過とともに、このリストは、リストが増え続けるにつれて、ビデオに自動ページ付けを追加する必要があるところまで成長しました。以前に一度やったことがあるので、その部分は扱えると思います。

ただし、顧客は、何があっても同じページに一緒にいる必要があるいくつかのビデオを持っています。その部分の扱い方がわかりません。

これについての考えをいただければ幸いです。

ありがとう、クリス

4

3 に答える 3

2

あまり変更を加える必要のない既存のものの単純な拡張として、ビデオの配列を多次元にすることを検討してください。それらを改ページするときに、ページのリストの最後にあるものに遭遇した場合は、中断するkeeptogether => TRUEのではなく、次の に到達するまで出力をループし続けますkeeptogether => FALSEkeeptogether(キーを値と同等のものとして省略する機能も組み込みFALSEます)。

$videolist = array(
  array("title" => "example1", "keeptogether" => FALSE),  
  array("title" => "example2", "keeptogether" => FALSE),
  array("title" => "example3", "keeptogether" => TRUE),
  array("title" => "example4", "keeptogether" => TRUE),
  array("title" => "example5" "keeptogether" => FALSE)
);

ページの最後でa が発生したときによりエレガントに動作する必要があり、keeptogether => TRUE続行する前に次のページに移動する必要がある場合 (現在のページが長くなりすぎないようにするため)、次のような単純なアルゴリズムを検討してください。

# Pseudocode:
# Encountering a keeptogether == TRUE when 2 from the end of a normal page length:
if current_page_counter < (num_per_page - 2) and keeptogether == TRUE
  break_to_next_page
else
  loop_until keeptogether == FALSE
于 2013-01-11T18:31:38.893 に答える
1

おそらくあなたのリストでは、それらをグループでソートし、グループでページ付けすることができます。ほとんどのグループには1つのビデオしかありませんが、一緒にビデオを必要とするグループには複数のビデオがあります。そのようです:

$videolist = array(
    "group1" => array("example1")
    "group2" => array("example2", "example3"),
    "group3" => array("example4"),
    "group4" => array("example5"),
);

したがって、ビデオごとにページ付けする代わりに、グループごとにページ付けします。通常、グループには1つのビデオがありますが、複数のビデオがある場合もあります。

これらを保存するためにデータベースを使用する場合は、この構造をそこに複製できます。

于 2013-01-11T18:32:12.713 に答える
0

ビデオを保存するために多次元配列を使用することを検討しましたか? 配列の各要素には、$videolist動画の配列が含まれます。これらのほとんどは 1 つの要素しか持ちませんが、グループ化する必要があるものは、次のように同じ配列になります。

$videolist = array(
    array("example1"),
    array("example2"),
    array("example3", "example4"),
    array("example5")
);

次に、ビデオを表示するときに、次のようなことができます。

$Offset = 1;
$PerPage = 2;
$Count = 0; $Displayed = 0;
foreach ($videolist as $videoarray) {
    foreach ($videoarray as $video) {
        $Count++;
        if ($Count <= $Offset) continue;

        $Displayed++;
        // Display Video
    }

    if ($Displayed >= $PerPage) break;
}

このように、ページは現在のグループの終わりまで終了しません。

それを変更することもできるので、反復する前にcount()ofを実行し$videoarray、合計を超える場合は中断します$PerPage

于 2013-01-11T18:37:00.243 に答える