2012-03-16 163 views
0

有了这个代码:修复/改善if语句的foreach不为空

$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": 
      .... 

什么能不能做到修复/改善这种代码?

通过修复我的意思是,我需要一种方法来避免空键

+0

删除所有空键/值$ SearchResult所数组中,这样一来,你不会有空键切换一个foreach内 – 2012-03-16 14:44:27

+1

开关是一个疯狂的建设。为什么你需要foreach,因为$ searchResults是一个一级深度数组,你知道密钥? – 2012-03-16 14:47:16

+0

我需要开关,因为每个和所提到的变量都包含非常不同的顺序的数据,我需要过滤该数据 – Alex 2012-03-16 14:51:41

回答

1
foreach ($searchResults as $key => $value) 
{ 
    if(empty($value)) continue; 
    ... 
+0

+1,有趣并且它做了工作 – Alex 2012-03-16 14:53:48

0

运行开关我个人只是做

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

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

...等。