我正在尝试创建一个页面,该页面基本上可以提取视频流并按观看者数量进行组织,因此观看次数最多的页面位于页面顶部。
我对 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
已排序,以便它以正确的顺序创建观众编号列表。然后,交换机将这些数字中的每一个与每个流的实际观看者数量进行比较,以找到它匹配的那个。
我认为如果 switch 参数匹配 2 个案例,它只会选择第一个,但遗憾的是没有。我也尝试用 if 语句替换它,但同样的事情发生了。
任何帮助,将不胜感激。