Php 修复/改进foreach不为null的if语句

Php 修复/改进foreach不为null的if语句,php,if-statement,foreach,null,switch-statement,Php,If Statement,Foreach,Null,Switch Statement,有此代码: $main = !empty($searchResults['main']) ? $searchResults['main'] : null; $second = !empty($searchResults['second']) ? $searchResults['second'] : null; $third = !empty($searchResults['third']) ? $searchResults['third'] : null; #if(($main) || ($s

有此代码:

$main = !empty($searchResults['main']) ? $searchResults['main'] : null;
$second = !empty($searchResults['second']) ? $searchResults['second'] : null;
$third = !empty($searchResults['third']) ? $searchResults['third'] : null;

#if(($main) || ($second) || ($third))
if((($main) || ($second) || ($third)) !== NULL)
{
    foreach ((array)$searchResults as $key => $value)
    {
        switch ($key)
        {
            case "main":
            ....
如何修复/改进此代码


所谓修复,我的意思是我需要一种方法来避免在空键上运行开关,我个人会这么做

foreach ($searchResults as $key => $value)
{
  if(empty($value)) continue;
  ...
if(!empty($searchResults['main'])
{
    $main = $searchResults['main'];
    //do stuff
}

if(!empty($searchResults['second'])
{
    $second = $searchResults['second'];
    //do stuff
}  

…等等。

删除$searchResults数组中的所有空键/值,这样一来,在foreach中就不会有空键可以切换,这是一种疯狂的构造。为什么需要foreach,因为$searchResults是一个一级深度数组,您知道关键点吗?我需要开关,因为上面提到的每个变量都包含顺序非常不同的数据,我需要过滤这些数据