我正在尝试创建一个基本上拉取视频流并按观众计数组织它们的页面,以便视图最多的页面位于页面顶部。
我对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语句替换它,但同样的事情发生了。
任何帮助都将不胜感激。
答案 0 :(得分:1)
ORDER BY viewCounter
答案 1 :(得分:0)
编辑:只有在您无法按正确的顺序获取视频时才能执行此操作!
为什么不这样做一个关联的数组:array($video2 => $viewers1, $video2 => $viewers2)
然后你可以按值排序。然后,您可以使用arsort(),只需从数组中读取视频键即可处理重新排序。