2015-09-11 34 views
-1

我有一些由ocd引起的不好的编程习惯,但是在编程时不要讨论我的强迫症(尽管这篇文章强化了它,omg)。将数组转换为数组在php中的成本

我有这两段代码(执行时间2.1934509277344E-5):

function get_paths($string, $array) { 

     $result = array(); 

     foreach($array as $i) 
      if (stripos($i, $string) !== false) 
       $result[] = $i; 

     return empty($result) ? false : $result; 

    } 

return语句看起来倒,与阴性结果来第一次(我的形式主义人会发疯)。我知道,我知道,我可以添加一个否定,但看起来最糟糕。为了避免这种情况,我想出了以下解决方案(时间执行2.288818359375E-5):

function get_paths($string, $array) { 

     $result = null; 

     foreach($array as $i) 
      if (stripos($i, $string) !== false) 
       (array)$result[] = $i; 

     return isset($result) ? $result : false; 

    } 

这段代码涉及到投(array)$result[] = $i;。重点是:每次将数组转换为数组多么愚蠢? 有人有一些深入的信息关于转换为相同的类型在PHP?

+0

它是在你基本上只是说:“这苹果是苹果”一遍又一遍又一遍的感觉哑。 –

+0

但它是一种重言式(在处理方面)? – lolol

+0

这是无用的繁忙工作。将其定义为开始的数组,然后统计循环完成后有多少个元素。在这种情况下,isset()是毫无意义的。 –

回答

0

如果它的事项都是因为你:

function get_paths($string, $array) { 

    $result = array(); 

    foreach($array as $i) 
     if (stripos($i, $string) !== false) 
      $result[] = $i; 

    return count($result) > 0 ? $result : false; 

} 
+0

不是我问:) – lolol