基本的にビデオ ストリームをプルし、視聴者数で整理するページを作成しようとしています。これにより、最も多くのビューがページの上部に表示されます。
私は PHP にかなり慣れていないので、私が行った方法は非常に非効率的で時間がかかりますが、知っておくべき主なことは、ネストされたスイッチを使用することです。
これは、すべてのビデオの視聴者数が 0 を超える場合に完全に機能します。私の問題は、2 つのビデオの視聴者数が同じ場合に発生します。これが発生すると、すべてのストリームは元の順序を保持します。
これは、問題の原因となっているコードの一部を削除したバージョンです。
$viewarray = array($viewers1, $viewers2, $viewers3, $viewers4);
rsort($viewarray, SORT_NUMERIC);
for ($z=0; $z<=3; $z++)
{
if ($viewarray[$z] == 0) {break;}
switch($viewarray[$z])
{
case $viewers1:
switch($z)
{
case 0:
//code which implements the re-ordering
case 1:
case 2:
case 3:
}
break;
case $viewers2:
switch($z)
{
case 0:
case 1:
case 2:
case 3:
}
break;
case $viewers3:
switch($z)
{
case 0:
case 1:
case 2:
case 3:
}
break;
case $viewers4:
switch($z)
{
case 0:
case 1:
case 2:
case 3:
}
break;
}
}
$viewarray
ビューアー番号のリストを正しい順序で作成するようにソートされます。次に、スイッチはこれらの各数値を各ストリームの実際の視聴者数と照合して、一致するものを見つけます。
スイッチ引数が2つのケースに一致した場合、最初のケースを選択するだけだと思っていましたが、残念ながらそうではありませんでした。if 文に置き換えてみましたが、同じことが起こります。
どんな助けでも大歓迎です。