Php 具有相同外壳的开关

Php 具有相同外壳的开关,php,Php,我正在尝试创建一个页面,它基本上可以提取视频流,并根据观众数量对其进行组织,因此浏览量最多的页面位于页面顶部 我对PHP还相当陌生,所以我使用的方法非常低效且耗时,但要知道的主要是我使用嵌套开关 当每个视频都有不同数量的观众超过0时,这一点非常有效。当两个视频拥有相同数量的观众时,我的问题就来了。当这种情况发生时,所有流都保留其原始顺序 下面是导致问题的代码片段的精简版本 $viewarray = array($viewers1, $viewers2, $viewers3, $viewers4)

我正在尝试创建一个页面,它基本上可以提取视频流,并根据观众数量对其进行组织,因此浏览量最多的页面位于页面顶部

我对PHP还相当陌生,所以我使用的方法非常低效且耗时,但要知道的主要是我使用嵌套开关

当每个视频都有不同数量的观众超过0时,这一点非常有效。当两个视频拥有相同数量的观众时,我的问题就来了。当这种情况发生时,所有流都保留其原始顺序

下面是导致问题的代码片段的精简版本

$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=array($viewers1、$viewers2、$viewers3、$viewers4);
rsort($viewarray,SORT\ U NUMERIC);

对于($z=0;$zwhoa-whoa-whoa-whoa。放弃这整件事。你应该做的更像是,每个流都应该有一个数据库记录。每当有人查看流时,数据库记录中的一列应该作为视图计数器递增。然后,在数据库表中的该列中添加一个索引,然后从要列出它们,只需在SQL查询中按视图数列排序。
按viewCounter排序
编辑:仅当无法按正确顺序获取视频时才执行此操作!


为什么不执行如下关联数组:
array($video2=>$viewers1,$video2=>$viewers2)
然后您可以根据值进行排序。然后您可以使用并读取数组中的视频键来处理重新排序。

我以后可能会这样做,以提高效率,但现在我只使用PHP。这似乎可行,但我在使用arsort()时遇到了问题。如果我使用它,然后尝试通过它们的键再次调用数组,它们仍将保持原始顺序。我可以以正确的顺序获得它的唯一方法是使用使用foreach循环的示例。如果我可以使顺序保持不变,那么我可以按索引切换,但它不起作用。