PHP如何从n个字符串中挑选出那个不为空的最短字符串m

如何从n个字符串(其中有x个空字符串,0≤x≤n)中挑选出那个不为空的最短字符串(m)。
与此同时还需要兼顾考虑以下特例:如果n个字符串中有x个为空(x<n),则m为空。

比如我们可以定义n=10,x=5,这就意味着:
1、当10个字符串中有2个是空字符串(2显然是小于5的),则m=最短的那个非空字符串
2、当10个中有5个或6个是空字符串时,则m=''(m=空)

echo '最长'.$arr3[0]."
"; //最长的
if($x1-$x2>=3){ //x1是所有字符串个数,包括空字符串; x2不包括空字符串的个数 我随便设置空的至少3个
echo "空";
return;
}else{ //没有空的或者空小于2的
echo $arr3[$x2-1]."
";
echo $arr3[$x2-2]."
";
}

代码如下:

<!DOCTYPE html> 
<html> 
<body> 

<?php 
$strs=array("Volvo","BMW","Toyota","","");
$n=count($strs);
$input_x=3;
$m="";



    
echo $arrlength;
$minlen=strlen($strs[0]);
$emptynum=0;

for($x=0;$x<$n;$x++)
{    
    if(strlen($strs[$x]) == 0 )
    {
       $emptynum+=1;
       if($emptynum>=$input_x)
       {
         $m="";
         break;
      }
    }else{
       $len = strlen($strs[$x]);
       if($len<$minlen)
       {
           $minlen = $len;
           $m = $strs[$x];
       }

    }
    
   
}
echo PHP_EOL;    
echo "最小字符串m为:".$m;
?> 

</body> 
</html>

输出为:

最小字符串m为:BMW